典型问题
0.1 + 0.3 不等于0.310.1 + 0.2 == 0.3 //false
原因
计算机计算是将其它进制(十进制)转换为二进制。浮点数0.1和0.2转换为二进制是无限循环小数(双精度浮点数的小数部分最多支持52位)
0.1 -> 0.0001 1001 1001 1001…(无限循环)
0.2 -> 0.0011 0011 0011 0011…(无限循环)
0.1 + 0.2 = 0.30000000000000004
解决方法
先将浮点数转换为整数,再除相应的倍数转换
|
|
Web developer
0.1 + 0.3 不等于0.310.1 + 0.2 == 0.3 //false
计算机计算是将其它进制(十进制)转换为二进制。浮点数0.1和0.2转换为二进制是无限循环小数(双精度浮点数的小数部分最多支持52位)
0.1 -> 0.0001 1001 1001 1001…(无限循环)
0.2 -> 0.0011 0011 0011 0011…(无限循环)
0.1 + 0.2 = 0.30000000000000004
先将浮点数转换为整数,再除相应的倍数转换
|
|