BigDecimalの仕組みを図解してみた。
目次
- 基本的な構造
- スケールを変える
- 足し算
- 引き算
- 掛け算
- 割り算
基本的な構造
BigDecimalは数値を整数部とスケールで表現します。スケールとは小数点以下の桁数のことです。
(例) 1.234
スケールを変える
スケールの変更はBigDecimalの基本的な操作です。足し算、引き算、割り算と値の比較でも使われます。
基本的な考え方
- スケール(小数点位置)を変更する。
- なるべく、実質的に値を変えない。(例:2.5と2.50は実質的に同じ値)
スケールを増やす
- 実質的に値を変えず、小数点以下の桁数を「2」に変える。(2.5→2.50)
- 小数点を除いて、実際の値(250)を整数値に転記する。
- スケールを「2」にする。
スケールを減らす
- 実質的に値を変えず、小数点以下の桁数を「1」に変える。(2.50→2.5)
- 小数点を除いて、実際の値(25)を整数値に転記する。
- スケールを「1」にする。
割り算
基本的な考え方
- 結果の値のスケールを指定できる。
- スケールを調整する。
- 「割られる値のスケール」−「割る値のスケール」=「結果の値のスケール」となるように調整する。
- 整数部を割り算する。
- 商と余りを求める。
- 余りがある場合、丸め処理をする。