カテゴリ: Java 更新日: 2026/01/21
PR
独学でJavaを学んでいる方向け
「実務レベルに到達できるか不安」「1人だと詰まることが多い」場合は、 実践重視で学べる環境を一度確認しておくのも一つの手です。
EBAエデュケーション |学習内容・サポートを見る

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

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

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

生徒

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

先生

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

生徒

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

先生

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

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なら誤差なしで扱えます。コンストラクタに数値を直接渡すよりも、文字列で生成するのが一般的です。これは二進数の変換過程で発生する誤差を避けるためです。

PR

将来を見据えて、+αのスキルを身につけたい方へ

JavaやLinuxを学んでいても、「このままで市場価値は上がるのか」 「キャリアの選択肢を広げたい」と感じる方は少なくありません。

AIを学ぶならアイデミープレミアム

3. subtractメソッドとは

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

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

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メソッドを使うときの注意点

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

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

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

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

9. 実務でのsubtractの活用例

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

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

Java Silver SE17(1Z0-825)の演習量を重視したい人には、 定番の問題集がこちらです。

徹底攻略 Java SE 17 Silver 問題集をAmazonで見る

※ Amazonアソシエイト・プログラムを利用しています

カテゴリの一覧へ
新着記事
PR

JavaやLinuxの検証環境に
低コストで使えるVPS

JavaのBigDecimalクラスsubtractメソッドを徹底解説!初心者向け減算処理ガイド
JavaのExceptionクラスを完全解説!初心者でも理解できる例外処理の基本
Thymeleafのth:classappend属性の使い方を完全ガイド!初心者でもわかる動的クラス追加
Javaのカプセル化を完全ガイド!初心者でもわかるデータの保護と制御の使い方
PR 未経験からITエンジニアを目指す方へ

Javaを学んでいるけど、「このまま未経験で就職できるか不安」という20代向け。 学歴不問・無料サポートの就職支援という選択肢があります。

Tamesy |無料で面談予約
人気記事
No.1
Java&Spring記事人気No1
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
Spring BootのJakarta移行ガイド!初心者向けjavax→jakarta変更ポイント徹底解説
No.3
Java&Spring記事人気No3
JavaのIntegerクラスの使い方を完全ガイド!初心者でもわかる整数操作
No.4
Java&Spring記事人気No4
JavaのArrayListクラスとgetメソッドを完全解説!初心者でもわかるリストの要素取得
No.5
Java&Spring記事人気No5
Thymeleafのth:classappend属性の使い方を完全ガイド!初心者でもわかる動的クラス追加
No.6
Java&Spring記事人気No6
JavaのIntegerクラスparseIntメソッド完全ガイド!初心者でもわかる文字列から数値変換
No.7
Java&Spring記事人気No7
Javaのラムダ式で配列を扱う!Arrays.streamの基本と注意点を初心者向けに解説
No.8
Java&Spring記事人気No8
JavaのHttpSessionを徹底解説!初心者でもわかるセッション管理の基本
PR

ローカルPCに依存しない開発環境という選択肢

Java・Linuxの検証や学習環境を、クラウド上ですぐに用意できます。

Java入門

Javaの基礎を体系的に学びたい場合は、文法だけでなく 「なぜそう書くのか」まで丁寧に解説されているため、 初心者でも理解しやすい定番の1冊です。

スッキリわかるJava入門 第4版

※ 紙の書籍・電子書籍どちらでも購入できます

Java実践

ジェネリクス、enum、シールクラスなどの型設計から、 関数型プログラミング(ラムダ式・Stream API)、 JVM制御やリフレクション、外部ライブラリの活用までを扱っており、 「Javaを使えるレベル」へ進むための内容が網羅されています。

スッキリわかるJava入門 実践編 第4版

※ 紙の書籍・電子書籍どちらでも購入できます

Spring入門

Spring Frameworkの全体像から、 Webアプリ開発で必要となる主要機能までを 体系的に解説している定番の入門書です。

Spring徹底入門 第2版 Spring FrameworkによるJavaアプリケーション開発

※ 紙の書籍・電子書籍どちらでも購入できます

PR 実務経験のあるエンジニア向け

Javaなどの実務経験があり、次のキャリアを検討している方向け。 IT・ゲーム業界に特化した転職支援サービスという選択肢もあります。

転職ボックス |IT・ゲーム業界専門