1. ホーム
  2. java

[解決済み] Double vs. BigDecimal?

2022-02-05 13:50:46

質問

私はいくつかの浮動小数点数の変数を計算しなければなりません。 BigDecimal の代わりに double の方がより正確だからです。しかし、私はそれが何であるか、そしてどうすれば BigDecimal ?

解決方法は?

A BigDecimal は、数字を正確に表現する方法です。A Double には一定の精度があります。様々な大きさの倍数を扱う(例えば d1=1000.0d2=0.001 ) が発生する可能性があります。 0.001 は、大きさの違いが大きいため、合計するときにすべて削除されます。とは BigDecimal というようなことは起こりません。

のデメリットは BigDecimal は速度が遅く、アルゴリズムをこの方法でプログラムするのが少し難しいということです (理由は + - */ はオーバーロードされない)。

お金を扱う場合や、正確さが要求される場合は BigDecimal . それ以外の場合 Doubles で十分なのです。

を読むことをお勧めします。 ジャバドック BigDecimal の方が説明しやすいと思いますので :)