私は単純に小さな部分を二重に追加しようとしているので、Javaの二重変数では非常に奇妙な振る舞いを見てきました。奇妙なJava部分の振る舞い
test = 0.91
右:
double test = 0;
test += 0.71;
test += 0.2;
今、私は結果があることを期待したいですか?違う!
現実には、これは私が私のテストでは、二重取得数されています。これは非常に近いながら
test = 0.9099999999999999
は今、それは非常に奇妙な分数の損失だし、長い目で見れば、それは私の中に重大なバグが発生しますプログラム。
フロートで私はさらに奇妙な結果を得ました。
ご協力いただければ幸いです。浮動小数点値のバイナリエンコーディングの魔法だ
おかげ
[二重に小数点を移動する]の複製が可能です。(http://stackoverflow.com/questions/4937402/moving-decimal-places-over-in-a-double) – assylias