53 votes

Déterminer si NSNumber est NaN

Comment puis-je déterminer si un Cacao NSNumber représente NaN (pas un nombre)?

C'est ce qui ressort, par exemple, lorsque je lis une chaîne qui n'est pas valide (non numérique) table des matières.

75voto

Adam Ernst Points 6939

Donc, j'ai trouvé que la propriété de la classe [NSDecimalNumber notANumber] , c'est juste pour ce but. Dans certaines langues, NaN != NaN, mais ce n'est pas le cas dans le Cacao.

19voto

Jens Ayton Points 11566

Comme Mike Abdullah dit, de façon naturelle pour représenter un NaN en Cacao est avec nil, mais [NSNumber numberWithDouble:NAN] retourne un objet valide. Il n'y a pas d' NSNumber-moyen spécifique de la détection de cette, mais de la manière générale, isnan([foo doubleValue]), des œuvres. Si vous n'aimez pas les fonctions, vous pouvez le coller dans une catégorie.

15voto

Peter DeWeese Points 10185

Pour les décimales, au moins:

[[NSDecimalNumber notANumber] isEqualToNumber:myNumber]

10voto

Thomas Points 31

J'ai trouvé que cela fonctionne, mais est-ce légal?

NSNumber *NaN = [NSDecimalNumber notANumber];

NSDecimalNumber *x = ... fill it somehow with NaN content ...

if ( x == NaN ) ... this works

est - NaN guaranteeed à un singleton valeur constante? Ce serait cool, mais je suppose qu'il ne l'est pas, puisque tous les exemples que j'ai trouvé l'utilisation de l' isEqual méthodes.

5voto

Johnny Mast Points 265

il y a aussi la fonction isnan() je l'ai trouvé aujourd'hui.

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