読み方 : ビッグデシマル

BigDecimal

概要

BigDecimalとはJavaなどのプログラミング言語に用意されている数値データ型の一つで、任意精度の10進数を扱うことができるもの。一般的な浮動小数点数型は内部で数値を2進数として保持するため、10進数の小数を正確に表現できず、計算過程でわずかな誤差が生じる場合がある。BigDecimalは数値を10進数のまま保持することで、こうした誤差のない正確な計算を可能にする。
BigDecimalのイメージ画像

Javajava.mathパッケージに含まれるBigDecimalクラスが代表的な実装であり、Pythondecimalモジュールなど他の言語にも似たような機能を持つ型が用意されている。整数部と小数部を合わせた数値と桁数の情報を組み合わせて値を保持しており、小数点以下の桁数を任意に指定できる。

数値を十進数のまま管理することで、極めて大きな数や長い桁数の小数でも精度を落とさずに計算することができる。加算や減算、乗算、除算に加え、比較や丸め、桁数の変更といった機能も備わっており、除算で無限小数になる場合は丸め方式や有効桁数を指定して計算する必要がある。通常の数値計算用の演算記号をそのまま使うことはできず、専用のメソッドを呼び出して計算する。

BigDecimalは主に金額の計算に用いられる。金融システムや会計ソフト、ECサイトの決済処理などでは、1円未満の端数のずれであってもシステム全体の信頼性を損なう原因になりかねない。浮動小数点数型で金額を扱うと、0.1と0.2を加算した結果が正確に0.3にならないといった問題が起こり得るが、BigDecimalを使えばこうした誤差を避けられる。税額計算や利率計算など、金額の正確性が求められる用途で広く採用されている。

一方、BigDecimalには計算処理の負荷が大きいという性質もある。内部で整数演算と桁数の管理を組み合わせて処理するため、float型double型など浮動小数点数型に比べて演算速度が遅く、CPUメモリの消費量も多くなる傾向がある。科学技術計算やグラフィックス処理など高速に大量の演算を行う必要があり、多少の誤差が許容される用途では、従来通り浮動小数点数型が使われることが一般的である。利用の際には、点にも注意が必要である。

(2026.7.23更新)
 
この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。