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.