【Java入門】BigDecimalの使い方総まとめ(足し算、引き算などの計算)

こんにちは!エンジニアの中沢です。

Javaには誤差が出ないように正確に計算するためのBigDecimalクラスがあります。double型を使うと誤差が出て、正確に計算ができなかった経験はないでしょうか?

この記事では、

  • BigDecimalとは
  • BigDecimalの使い方(足し算、引き算)
  • という基本的な内容から、

  • setScaleで桁数を指定して四捨五入
  • compareToでBigDecimalの値を比較
  • BigDecimalの型変換
  • などの応用的な使い方に関しても解説していきます。今回はこれらの方法を覚えるために、BigDecimalクラスのさまざまな使い方をわかりやすく解説します!

    BigDecimalとは

    BigDecimalは誤差が出ないように正確に計算するために使います。

    また、四捨五入などの丸め処理の方法桁数を指定するためにも使います。BigDecimalを使わない場合にどのような誤差が出るのか、次のプログラムで確認してみましょう。

    実行結果:

    このプログラムの実行結果から、BigDecimalを使わない場合には誤差が発生することが確認できました。

    BigDecimalの使い方(足し算、引き算)

    ここではBigDecimalで四則演算を行う基本的な使い方を解説します。

    BigDecimalで四則演算を行う方法を次のプログラムで確認してみましょう。

    実行結果:

    このプログラムでは、足し算、引き算、掛け算、割り算をそれぞれ行って結果を表示しています。

    割り算では引数で四捨五入して、小数点以下の桁数を1桁にするように指定しています。BigDecimalの計算をする方法についてはこちらで詳しく解説しているので、ぜひ確認してください!

    【Java入門】BigDecimalで小数点以下を誤差なく計算する方法
    更新日 : 2018年11月29日

    setScaleで桁数を指定して四捨五入

    ここではsetScaleメソッドで四捨五入などの丸め処理をする方法を解説します。

    四捨五入などの丸め処理を行う方法を次のプログラムで確認してみましょう。

    実行結果:

    このプログラムでは小数点以下の桁数を指定して、四捨五入、切り上げ、切り捨ての処理をしています。

    BigDecimalで四捨五入などの丸め処理をする方法についてはこちらで詳しく解説しているので、ぜひ確認してください!

    【解決Java】BigDecimalで四捨五入や切り捨ての丸め誤差を解決
    更新日 : 2019年4月5日

    compareToでBigDecimalの値を比較

    最後にBigDecimalの値を比較する方法を解説します。

    BigDecimalの値はcompareToメソッドを使って大小の比較をすることができますcompareToメソッドを使って比較する方法を次のプログラムで確認してみましょう。

    実行結果:

    compareToメソッドでBigDecimalの値を比較する場合の戻り値は次の通りです。

  • メソッドの呼び出し元の値が、引数の値より小さい場合は”-1”
  • メソッドの呼び出し元の値が、引数の値より大きい場合は”1”
  • メソッドの呼び出し元の値が、引数の値と同じ場合は”0”
  • BigDecimalの値を比較する方法についてはこちらで詳しく解説しているので、ぜひ確認してください!

    【Java入門】BigDecimalの大小をcompareToで比較する方法
    更新日 : 2019年4月16日

    BigDecimalの型変換

    BigDecimal型の値とString型Int型などの数値型の値を型変換する方法についてご紹介します。

    String型との相互変換

    BigDecimal型とString型との型変換についてご紹介します。

    BigDecimal型からString型への変換

    BigDecimal型からString型へ変換するには、toStringメソッドを使用します。サンプルコードで確認しましょう。

    実行結果:

    String型からBigDecimal型への変換

    String型からBigDecimal型への変換する方法は、すでにご紹介済みですね。例えば以下のように記述します。

    int型との相互変換

    BigDecimal型とint型などの数値型との型変換についてご紹介します。

    BigDecimal型から数値型への変換

    BigDecimal型からint型などの数値型へ変換するには、intValue、doubleValueメソッドなどを使用します。サンプルコードで確認しましょう。

    実行結果:

    なお、short型への変換の場合はshortValueメソッドを、long型への変換の場合はlongValueメソッドを、float型への変換の場合はfloatValueメソッドを使用します。

    数値型からBigDecimal型への変換

    int型などの数値型からBigDecimal型への変換には、valueOfメソッドを使用します。こちらもすでにサンプルコードでご紹介済みですね。

    例えば以下のように記述します。

    まとめ

    いかがでしたか?

    今回はBigDecimalクラスの使い方について解説しました。BigDecimalクラスを使うと正確に計算や、四捨五入などの丸め処理ができるので、ぜひ覚えてくださいね。

    もし、BigDecimalクラスを使う方法を忘れてしまったらこの記事を確認してください!

    LINEで送る
    Pocket

    最短でエンジニアを目指すなら侍エンジニア塾

    cta_under_bnr

    侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

    あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

    無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

    無料体験レッスンの詳細はこちら

    書いた人

    中沢 丈

    中沢 丈

    フリーランスエンジニア。
    システム開発からコンテンツ作成まで幅広く対応します。

    連絡先はこちらです。
    [email protected]

    おすすめコンテンツ

    あなたにぴったりなプログラミング学習プランを無料で診断!

    プログラミング学習の効率を劇的に上げる学習メソッドを解説