菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
98
0

iOS-nan or +inf 报错

原创
05/13 14:22
阅读数 97360

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

 

发表评论

0/200
98 点赞
0 评论
收藏
为你推荐 换一批