Итак, когда я добавляю или вычитаю в Java с парными, это дает мне странные результаты. Вот некоторые из них:
Если я добавлю 0.0 + 5.1
, он даст мне 5.1
. Это правильно.
Если я добавлю 5.1 + 0.1
, он даст мне 5.199999999999
(число повторений 9
может быть выключено). Это неправильно.
Если я вычитаю 4.8 - 0.4
, он дает мне 4.39999999999995
(опять же, повторяющийся 9
может быть выключен). Это неправильно.
Сначала я думал, что это только проблема с добавлением удвоений с десятичными значениями, но я был неправ. Следующие работали нормально:
5.1 + 0.2 = 5.3
5.1 - 0.3 = 4.8
Теперь первое добавленное число - это double, сохраненный как переменная, хотя вторая переменная захватывает текст из JTextField
. Например:
//doubleNum = 5.1 RIGHT HERE
//The textfield has only a "0.1" in it.
doubleNum += Double.parseDouble(textField.getText());
//doubleNum = 5.199999999999999