iOS-nan or +inf 报错
nan or +inf报错
一、nan的意思是 not a number 不是数字
nan一般是因为在float类型经过函数运行后,出现了不为数字的值,主要常见原因有
- 除以0 就是你的除数为0 (10/0) 或者 除数或者被除数为null (这两种情况在你做除法的时候可能不会出现错误,但是当你设置constant的时候就会出现问题)
- sizeWithFont的字符串为nil
- 数学函数不正确运算 如对负数开平方 (-1开方)
注意NaN或者+inf并不会直接导致崩溃,但是在后期运算中可能导致崩溃
常见的报错:'NSLayoutConstraint constant is not finite! That's illegal. constant:nan firstAnchor
二、inf 意思是:infinity 无穷
inf一般是因为得到的数值,超出浮点数的表示范围(溢出,即阶码部分超过其能表示的最大值);
解决办法
-
数学计算时,对分母进行判断 是否为0
-
判断数据
if (isnan(a)) { NSLog(@"NaN"); } if (isinf(b)) { NSLog(@"+inf"); }