Inaccurate calculations using double and float
本问题已经有最佳答案,请猛点这里访问。
为什么这段代码给出的结果不准确?
1 2 3 4 |
结果是
1 2 | 0.8999999999999999 0.90000004 |
号
在爪哇中,双值是IEEE浮点数。除非它们是2的幂(或2的幂之和,例如1/8+1/4=3/8),否则它们不能精确表示,即使它们具有高精度。一些浮点运算将复合这些浮点数中存在的舍入错误。在上面描述的情况下,浮点错误已经变得足够重要,足以显示在输出中。