浮点数
float double之类的只存储整数是准确的,浮点数的小数部分实际上是(1 or 0) * 2^(-1) + (1 or 0) * 2^(-2) + (1 or 0) * 2^(-2)...这样实现的
比如
0.3 * 2 = 0.6
0.6 * 2 = 1.2
0.2 * 2 = 0.4
0.4 * 2 = 0.8
0.8 * 2 = 1.6
0.6 * 2 = 1.2
...
这样0.3就永远不能精确的存储
float double之类的只存储整数是准确的,浮点数的小数部分实际上是(1 or 0) * 2^(-1) + (1 or 0) * 2^(-2) + (1 or 0) * 2^(-2)...这样实现的
比如
0.3 * 2 = 0.6
0.6 * 2 = 1.2
0.2 * 2 = 0.4
0.4 * 2 = 0.8
0.8 * 2 = 1.6
0.6 * 2 = 1.2
...
这样0.3就永远不能精确的存储