objective-c floating-point

objective c - Objetivo C-comprobación flotante para nan



objective-c floating-point (4)

Tengo una variable ( float slope ) que a veces tendrá un valor de nan cuando se imprima, ya que a veces ocurre una división por 0.

Estoy tratando de hacer un if-else para cuando eso suceda. ¿Cómo puedo hacer eso? if (slope == nan) no parece funcionar.


Dos formas, que son más o menos equivalentes:

if (slope != slope) { // handle nan here }

O

#include <math.h> ... if (isnan(slope)) { // handle nan here }

( man isnan le dará más información, o puede leer todo al respecto en el estándar C)

Alternativamente, podrías detectar que el denominador es cero antes de dividirlo (o usar atan2 si vas a terminar usando atan en la pendiente en lugar de hacer algún otro cálculo).


En Swift, debe hacer slope.isNaN para verificar si es un NaN.


Nada es igual a NaN , incluido el propio NaN . Entonces, revisa x != x


if(isnan(slope)) { yourtextfield.text = @""; //so textfield value will be empty string if floatvalue is nan } else { yourtextfield.text = [NSString stringWithFormat:@"%.1f",slope]; }

Espero que esto funcione para usted.