<分区>
Possible Duplicate:
Why can't decimal numbers be represented exactly in binary?
我从简单的 float 学中得到了非常奇怪的行为。例如。
//create a float with value of 1.0
float f = 1.0;
//take 0.1 from its value
f -=0.1;
前几次当 i 减去 0.1 时,它返回 0.9、0.8、0.7…… 然后由于某种原因它将返回 0.699999999999、0.59999999999 等等。 说这是出乎意料的是轻描淡写。
所以要解决这个问题,我要么需要知道它为什么会这样做 或类似于 Round(float) 的数学函数,它将数字从 0.5999999 舍入到 0.6。
谢谢
编辑, 好的,抱歉问了,哈哈 有可用的修复程序吗?像 Round(float) 之类的东西?
其他编辑: 对于下一个人来说这是一个修复
final DecimalFormat myFormat = new DecimalFormat("#.#");
myFormat.format(myFloatValue)
这会将 myFloatValue 0.599999 更改为 0.6