加减双精度会得到奇怪的结果
因此,当我在Java中用Doubles加减时,它会给我带来奇怪的结果。以下是一些:
如果我添加,它会给我.没错。0.0 + 5.1
5.1
如果我加上,它会给我(重复的次数可能不对)。这是错误的。5.1 + 0.1
5.199999999999
9
如果我减去,它会给我(再次,重复的s可能是关闭的)。这是错误的。4.8 - 0.4
4.39999999999995
9
起初,我以为这只是用十进制值添加双精度值的问题,但我错了。以下工作正常:
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