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.