我花了几乎一整天的时间试图弄清楚为什么会这样不断将它增加 0.01 直到它是一个整数,但它永远不会停止,调试它我注意到随着循环的进行,这个数字变得越来越不准确,导致它到最后变成 0.0000066。
我想也许该变量可能已经在其他地方以某种方式被访问过,所以我只是在一个空的“主”程序中创建了它:
float value = 0;
for (int i=0; i<100; i++) {
value += 0.01f;
}
System.out.println(value); // Displays 0.99999934
System.out.println(value == 1); // Just in case it's displaying wrong in println (displays false)
为什么到最后不是1?我认为这与数据类型无关,因为我正在向浮点数添加浮点数。