【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クラスを使う方法を忘れてしまったらこの記事を確認してください!

    Javaカリキュラム無料公開中!

    この記事はJava入門完全攻略ガイド【基礎学習/アプリ開発/仕事獲得】の一部になります。このカリキュラムは、プログラミング入門者が、基礎学習からアプリ開発、さらには仕事獲得まで体系的に学べる内容となっています。

    Java学習に必要な情報を一つにまとめていますので効率よくJavaを学ぶことが出来ます。この機会に是非活用していただければと思います。

    Java入門からアプリ開発まで未経験者が知っておくべき基礎を総ざらい
    更新日 : 2018年12月13日

    最短でJavaを習得したい方へ

    もし、あなたが、

    「難しすぎて学習が全然進まない」
    「学習量が膨大でゴールが見えない」
    「エラーを解決するのに何日もかかってしまう」

    など、プログラミング学習やキャリアに関してお困りであれば、まずは『無料体験レッスン』にお申し込み下さい。

    あなたにとって、最適の解決策をご提案させていただきます。

    詳しくは下の画像から詳しいサービス内容をご確認ください。

    cta_bannar-java1

    非常識な結果を出す卒業生多数!

    エンジニアキャリア戦略

    人気記事セレクション

    3000名以上来場の人気セミナーが開催決定

    18歳で時給6000円だった侍エンジニア塾代表の木内より、『プログラミングで人生を変える』ための学習方法をお教えます。

    0からプログラミングを習得し、フリーランスエンジニアになる方法プログラミング学習の効率を劇的に上げる学習メソッドを解説しますので、奮ってご参加ください。

    • 日付:4/20(土),4/27(土)
    • 時間:14:00〜17:35終了予定
    • 場所:当社 道玄坂オフィス
    • 住所:〒150-0043 東京都渋谷区道玄坂2丁目11-1 Gスクエア渋谷道玄坂 4F *Googleマップでは「東京都渋谷区道玄坂2丁目11-1」で検索してください。近隣にスクエア渋谷という別のビルがあるためご留意ください。
    • 参加費:無料
    • URL:https://seminar.sejuku.net/
    詳しくは下の画像をクリックして弊社セミナー内容をご確認ください。

    LINEで送る
    Pocket

    この記事が気に入ったら
    いいね!をしてフォローしよう

    最新情報をお届けします

    書いた人

    中沢 丈

    中沢 丈

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

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