【Java入門】BigDecimal型で計算する際の注意点

Javaで小数を含む値を計算する際の注意点について記載しています。

BigDecimal型で計算する際の注意点

注意点は、BigDecimalのコンストラクタの引数に

double型の値を渡すと予想外の動きをする

という点です。

1. 予想外の動き

例えば、0.1 を引数として渡して、文字列表現を確認してみると次のようになります。

実行結果から、コンストラクタに渡した 0.1 が BigDecimal のインスタンス生成後に、0.100・・・となっていることが分かります。

この理由については、Oracleドキュメント(public BigDecimal(double val)) に記載があります。

2. 解決方法

この問題を解決するには、BigDecimalのコンストラクタの引数に 文字列 として値を渡します。

BigDecimalのコンストラクタに、文字列として値を渡すと正しく値が設定されました。

意識しないと double型 の値を渡してしまうので、注意するポイントになります。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする