可能重复:
处理浮点数的准确性问题
而 99.99 * 0.01 = 0.99
显然这是古老的浮点舍入问题,但是在这种情况下的舍入误差对我来说似乎相当大;我的意思是我可能期望得到 0.99990000001 或类似的“接近”结果。
作为记录,我在 JavaVM 和 .Net 环境中得到了相同的答案。
可能重复:
处理浮点数的准确性问题
而 99.99 * 0.01 = 0.99
显然这是古老的浮点舍入问题,但是在这种情况下的舍入误差对我来说似乎相当大;我的意思是我可能期望得到 0.99990000001 或类似的“接近”结果。
作为记录,我在 JavaVM 和 .Net 环境中得到了相同的答案。
为什么 0.9998999999999999 对您来说不够接近(而 0.9999000000000001 很好)?
绝对值(0.9999 - 0.9998999999999999)== 绝对值(0.9999 - 0.9999000000000001)
It is a floating point error. For (a lot) more detail see this wikipedia article. Use a decimal
if you need accurate fractional results (see here).