今天在运行一段相除运算代码的时候,出现了运算结果为nan的问题。顾名思义,nan就是Not a Number的缩写,表明运算的结果不是number(数字)类型的。
运算中出现nan的原因自己总结为以下几种:
1.小数的除法运算中,分母为0。
2.对负数进行开平方根运算。
3.其他数学函数的不正确运算,例如0乘以一个无穷大的数。
let a = 0.0 / 0.0
let b = sqrt(-1.0)
let c = 0.0 * Double.infinity
RYQLog(a)
RYQLog(b)
RYQLog(c)
所在控制器:BubbleSortVC.swift; 行数:(22); 方法名:viewDidLoad(); 打印结果:
nan
所在控制器:BubbleSortVC.swift; 行数:(23); 方法名:viewDidLoad(); 打印结果:
nan
所在控制器:BubbleSortVC.swift; 行数:(24); 方法名:viewDidLoad(); 打印结果:
nan
运算结果出现nan的处理:
一般运算结果中出现nan,需要我们做一个判断,防止再做其他运算的时候报错。
OC中用isnan(X)来判断。
Swift中使用X.isNaN来判断。
网友评论