【发布时间】:2014-06-23 10:15:08
【问题描述】:
所以我在 java 中制作了一个 cookie 点击器克隆(我真丢脸),一方面,我需要为你拥有的每个光标增加 0.1 倍。代码如下所示(cookies 是双精度值,所有其他值都是整数):
cookies = cookies + (cursors*.1+grandmas/2+farms*4+factories*10);
但是,当它输出时,它会输出 2.3999999999999999 之类的数字,而不是 2.4。怎么回事?
【问题讨论】:
-
尝试
cursors/10.0而不是cursors*0.1这将减少错误。 -
而且它与java 无关。这是所有使用 IEEE 浮点数学的语言的一般行为。因为这就是 IEEE 数学的工作原理,无论是 C/C++/Java/.net 什么。
标签: java decimal multiplication