013-002-012
BigDecimalで正確な金額計算
上級
問題説明
BigDecimalで正確な金額計算
この問題では: BigDecimalクラスを使って浮動小数点の誤差なく正確な金額計算を行い、doubleとの精度の違いを示すプログラムを作成します。
学習目標: doubleの浮動小数点誤差問題とBigDecimalによる正確な十進数計算を理解する
概要
double型では0.1 + 0.2が正確に0.3にならないという有名な浮動小数点誤差があります。金額計算などの精度が重要な場面ではBigDecimalを使います。文字列からコンストラクタで生成するのが正確です。
仕様
- doubleで0.1 + 0.2の結果を出力(誤差を示す)
- BigDecimalで同じ計算を正確に行う
- 商品価格1980円に消費税10%を適用(小数点以下切り捨て)
- BigDecimalの比較にはcompareToを使用
出力形式
double: 0.1 + 0.2 = 0.30000000000000004
BigDecimal: 0.1 + 0.2 = 0.3
Price: 1980
Tax (10%): 198
Total: 2178
Equal to 2178? true
