2 votes

Échec de la comparaison de NSDecimalNumber

Pourquoi la result NSOrderedDescending ?

NSDecimalNumber *decimal = [[NSDecimalNumber alloc] initWithString:@"2.6"];

NSComparisonResult result = [decimal compare:[NSNumber numberWithFloat:2.6]];

3voto

dasblinkenlight Points 264350

2.6 ne peut pas être représentée exactement comme un nombre à virgule flottante, mais NSDecimal peut représenter exactement cette valeur (c'est pourquoi nous avons besoin de NSDecimals en premier lieu).

Selon le Calculatrice IEEE 754 , 2.6 est converti en 2.5999999046325684 qui est inférieur à 2.6 et se compare donc à NSOrderedDescending .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X