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");
}

 

posted @ 2021-04-15 13:49  俊华的博客  阅读(925)  评论(0编辑  收藏  举报