カテゴリ: Java 更新日: 2026/01/21

JavaのBigDecimalクラスsubtractメソッドを徹底解説!初心者向け減算処理ガイド

BigDecimalのsubtractメソッド
BigDecimalのsubtractメソッド

先生と生徒の会話形式で理解しよう

生徒

「先生、Javaでお金の計算をしていたら引き算の結果がうまく合わないことがあるんです。どうすれば正確に計算できますか?」

先生

「それは浮動小数点の誤差が原因ですね。Javaではjava.math.BigDecimalクラスを使えば、正確な引き算を行えます。引き算にはsubtractメソッドを使うんですよ。」

生徒

「なるほど!普通のマイナス演算子じゃなくて、専用のメソッドを使うんですね。」

先生

「そうです。では具体的に使い方を見てみましょう!」

1. java.mathパッケージとは

「1. java.mathパッケージとは」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

1. java.mathパッケージとは
1. java.mathパッケージとは

Javaのjava.mathパッケージは、高精度な数値演算を提供するためのクラス群を含んでいます。その中でも特に重要なのがBigDecimalです。このクラスを使えば、doublefloatでは避けられない誤差を解消できます。金融システムや会計システムなど、正確さが絶対に必要な場面で多用されます。

2. BigDecimalクラスの特徴

2. BigDecimalクラスの特徴
2. BigDecimalクラスの特徴

BigDecimalは整数部と小数部を正確に扱えるクラスで、桁数の制限なく計算が可能です。例えば「0.1」をdoubleで扱うと誤差が出やすいですが、BigDecimalなら誤差なしで扱えます。コンストラクタに数値を直接渡すよりも、文字列で生成するのが一般的です。これは二進数の変換過程で発生する誤差を避けるためです。

3. subtractメソッドとは

3. subtractメソッドとは
3. subtractメソッドとは

subtractメソッドは、BigDecimal同士の引き算を行うためのメソッドです。通常の-演算子では使えないので、必ずメソッドを呼び出す必要があります。これにより桁数が多い計算や小数点を含む計算でも正確に結果が得られます。

4. subtractメソッドの基本的な使い方

「4. subtractメソッドの基本的な使い方」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

4. subtractメソッドの基本的な使い方
4. subtractメソッドの基本的な使い方

実際にサンプルコードで確認してみましょう。


import java.math.BigDecimal;

public class BigDecimalSubtractExample {
    public static void main(String[] args) {
        BigDecimal num1 = new BigDecimal("100.50");
        BigDecimal num2 = new BigDecimal("20.25");
        BigDecimal result = num1.subtract(num2);
        System.out.println("結果: " + result);
    }
}

このコードを実行すると、以下のように正確な結果が得られます。


結果: 80.25

5. マイナスの結果とsubtract

5. マイナスの結果とsubtract
5. マイナスの結果とsubtract

subtractを使うと、結果がマイナスになる場合もそのまま表現できます。例えば小さい数から大きな数を引くと負の数になります。これも正確に扱えるのがBigDecimalの強みです。


BigDecimal a = new BigDecimal("50");
BigDecimal b = new BigDecimal("100");
BigDecimal diff = a.subtract(b);
System.out.println(diff);

-50

6. subtractとスケールの関係

6. subtractとスケールの関係
6. subtractとスケールの関係

BigDecimalにはスケールという小数点以下の桁数を表す概念があります。引き算を行うと、結果のスケールが自動的に調整されます。例えば「100.500」から「0.50」を引いた場合、結果は「100.000」となり、ゼロを含むスケールが維持されることがあります。見た目の調整をしたい場合はstripTrailingZerossetScaleを組み合わせると便利です。

7. subtractメソッドを使うときの注意点

「7. subtractメソッドを使うときの注意点」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

7. subtractメソッドを使うときの注意点
7. subtractメソッドを使うときの注意点

引き算自体は簡単ですが、注意点もあります。まず、nullの値を扱うとNullPointerExceptionが発生しますので必ずチェックしましょう。また、スケールや丸め設定を意識しておかないと、意図しない表示になることがあります。金融システムのように桁数が厳密に決まっている場合は、subtractの後にsetScaleを組み合わせて制御するのがおすすめです。

8. subtractと他の演算メソッドの比較

8. subtractと他の演算メソッドの比較
8. subtractと他の演算メソッドの比較

BigDecimalにはadd(加算)、multiply(乗算)、divide(除算)といった演算メソッドもあります。これらと組み合わせて使うことで、四則演算をすべて正確に扱えます。subtractはその中でも基本中の基本であり、最初に覚えるべきメソッドです。

9. 実務でのsubtractの活用例

9. 実務でのsubtractの活用例
9. 実務でのsubtractの活用例

実際の業務システムでは、商品の価格から割引額を差し引いたり、残高から支出額を引いたりする場面でsubtractが使われます。例えばECサイトでは「購入金額 − クーポン割引」を計算し、銀行システムでは「残高 − 出金額」を計算するような用途で欠かせません。誤差のない計算を保証することで、信頼性の高いシステムを実現できます。

カテゴリの一覧へ
新着記事
New1
Java
JavaのHashSetのaddメソッドを完全ガイド!初心者でもわかるセットの使い方
更新記事
New2
Spring
SpringのBindingResultを完全ガイド!初心者でもわかる入力チェックとエラー処理
更新記事
New3
Java
JavaのStreamとforEachを完全ガイド!初心者でもわかる繰り返し処理の基本
更新記事
New4
Servlet
JavaのPushBuilderクラスgetSessionIdメソッドを完全ガイド!初心者でもわかるセッションIDの取得方法
更新記事
人気記事
No.1
Java&Spring記事人気No1
Spring
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
Spring
Spring BootのMultipartFile入門:ファイルアップロード・ダウンロードの実装方法と制限設定
No.3
Java&Spring記事人気No3
Spring
SpringのBindingResultを完全ガイド!初心者でもわかる入力チェックとエラー処理
No.4
Java&Spring記事人気No4
Thymeleaf
Thymeleaf(タイムリーフ)の使い方入門!初心者でもわかるth:textの基礎
No.5
Java&Spring記事人気No5
Spring
Thymeleaf(タイムリーフ)入門!初心者でもわかるSpring Bootとテンプレートエンジンの使い方
No.6
Java&Spring記事人気No6
Spring
Springの@Componentアノテーションの使い方を徹底解説!初心者でもわかるSpring Boot入門
No.7
Java&Spring記事人気No7
Thymeleaf
Thymeleafのth:replaceの使い方を徹底解説!テンプレート置き換えの基本やth:includeとの違いを解説
No.8
Java&Spring記事人気No8
Java
JavaのRuntimeExceptionを完全解説!初心者でもわかるjava.langパッケージの基礎