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

中沢 丈
書いた人 中沢 丈
侍エンジニア塾ブログは、未経験からWebアプリ開発と仕事獲得をサポートする
侍エンジニア塾のオウンドメディアです。
プログラミング学習を覗き見

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

Javaには誤差が出ないように正確に計算するためのBigDecimalクラスがあります。

double型を使うと誤差が出て、正確に計算ができなかった経験はないでしょうか?

この記事では、

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

という基本的な内容から、

・setScaleで桁数を指定して四捨五入
・compareToでBigDecimalの値を比較
・BigDecimalの型変換

などの応用的な使い方に関しても解説していきます。

今回はこれらの方法を覚えるために、BigDecimalクラスのさまざまな使い方をわかりやすく解説します!

BigDecimalとは

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

また、四捨五入などの丸め処理の方法や桁数を指定するためにも使います。

BigDecimalを使わない場合にどのような誤差が出るのか、次のプログラムで確認してみましょう。

実行結果:

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

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

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

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

実行結果:

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

割り算では引数で四捨五入して、小数点以下の桁数を1桁にするように指定しています。

BigDecimalの計算をする方法についてはこちらで詳しく解説しているので、ぜひ確認してください!

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

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

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

実行結果:

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

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

compareToでBigDecimalの値を比較

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

BigDecimalの値はcompareToメソッドを使って大小の比較をすることができます。

compareToメソッドを使って比較する方法を次のプログラムで確認してみましょう。

実行結果:

compareToメソッドでBigDecimalの値を比較する場合の戻り値は次の通りです。
・メソッドの呼び出し元の値が、引数の値より小さい場合は”-1”
・メソッドの呼び出し元の値が、引数の値より大きい場合は”1”
・メソッドの呼び出し元の値が、引数の値と同じ場合は”0”

BigDecimalの値を比較する方法についてはこちらで詳しく解説しているので、ぜひ確認してください!

BigDecimalの型変換

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

String型との相互変換

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

BigDecimal型からString型への変換

BigDecimal型からString型へ変換するには、toStringメソッドを使用します。

サンプルコードで確認しましょう。

実行結果:

String型からBigDecimal型への変換

String型からBigDecimal型への変換する方法は、すでにご紹介済みですね。

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

int型との相互変換

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

BigDecimal型から数値型への変換

BigDecimal型からint型などの数値型へ変換するには、intValuedoubleValueメソッドなどを使用します。

サンプルコードで確認しましょう。

実行結果:

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

数値型からBigDecimal型への変換

int型などの数値型からBigDecimal型への変換には、valueOfメソッドを使用します。

こちらもすでにサンプルコードでご紹介済みですね。

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

まとめ

いかがでしたか?

今回はBigDecimalクラスの使い方について解説しました。

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

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

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

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


33歳、未経験だった僕がフリーエンジニアになれた理由
現在フリーランスをされている市川友哉さん。33歳で、プログラミングを学び始め、4ヶ月という短い期間でフリーランスエンジニアとして独立までされた学習ログを余すことなくインタビューさせていただきました。

プログラミングを学習中の方はもちろん、独立をお考えの方まで幅広く活用できる記事になっています。この機会に是非活用していただければと思います。


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

もし、あなたが、

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

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

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

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

cta_bannar-java2

非常識な結果を出した卒業生

活躍する現役エンジニア

人気記事セレクション

LINEで送る
Pocket

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

最新情報をお届けします

書いた人

中沢 丈

中沢 丈

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

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