因此,当我在 Java 中使用 Doubles 进行加法或减法时,它会给我带来奇怪的结果。这里有一些:
如果我添加0.0 + 5.1
,它会给我5.1
。这是正确的。
如果我添加5.1 + 0.1
,它会给我5.199999999999
(重复9
s 的数量可能会关闭)。那是错误的。
如果我减去4.8 - 0.4
,它会给我4.39999999999995
(同样,重复9
的 s 可能会关闭)。那是错误的。
起初我以为这只是用十进制值添加双精度的问题,但我错了。以下工作正常:
5.1 + 0.2 = 5.3
5.1 - 0.3 = 4.8
现在,添加的第一个数字是保存为变量的双精度数,尽管第二个变量从JTextField
. 例如:
//doubleNum = 5.1 RIGHT HERE
//The textfield has only a "0.1" in it.
doubleNum += Double.parseDouble(textField.getText());
//doubleNum = 5.199999999999999