我将值递增0.01,这是一个双精度值,但它实际上从未达到0。for (double x = -50; x < 50; x += 0.01) for (double y = -50; y <50; y += 0.01) }知道为什么会这样吗?我假设它与'double‘有关,如果是这样,我可以使用什么作为替代?
更新:我把它改成了十进制,并且把所有的十进制数都改成了&
当我运行以下代码时:double y = x * 100;由于浮点精度的性质,我得到了预期的434.99999999999994然而,当我跑步时:double y = x * 1000;我让4350.0在控制台里。类似地,当我用1000替换10时,我得到了43.5,这很奇怪,因为这些数字没有舍入误差。另外,当我尝试使用4.