したがって、JavaでDoublesを使用して加算または減算すると、奇妙な結果が得られます。ここにあるいくつかの:
を追加する0.0 + 5.1
と、が得られます5.1
。そのとおりです。
を追加すると、次の5.1 + 0.1
ようになります5.199999999999
(繰り返し9
の数がオフになっている可能性があります)。それは間違っている。
を引く4.8 - 0.4
と、それが得られます4.39999999999995
(繰り返しますが、9
sがオフになっている可能性があります)。それは間違っている。
最初は、これは10進値でdoubleを追加する場合の問題だけだと思いましたが、間違っていました。以下は正常に機能しました。
5.1 + 0.2 = 5.3
5.1 - 0.3 = 4.8
これで、最初に追加された数値は変数として保存されたdoubleですが、2番目の変数はからテキストを取得しますJTextField
。例えば:
//doubleNum = 5.1 RIGHT HERE
//The textfield has only a "0.1" in it.
doubleNum += Double.parseDouble(textField.getText());
//doubleNum = 5.199999999999999