LoginSignup
0
0

More than 3 years have passed since last update.

いつもintな初心者のBigDecimal備忘録

Last updated at Posted at 2020-11-08

はじめに

Java学習歴3ヶ月の者です。
研修でSpringをやっているのですが、データ型がNumberのものは
整数にしかならないものもintではなくBigDecimalを使いました。
数値といえばintかdoubleしか使ってこず、BigDecimalの処理にとまどいました。
BigDecimalについてきちんとまとめられている記事は多くありますが、
実際使ったものだけ備忘録としてまとめてみます。

計算したい

四則演算は「+」、「-」、「*」、「/」ではありません。

演算 メソッド
加算(A + B) add A.add(B)
減算(A - B) subtract A.subtract(B)
乗算(A * B) multiply A.multiply(B)
徐算(A / B) divide A.divide(B)

徐算は使ったことないですが、少数になる場合は引数が3つ必要です。
A.divide(B, 小数点以下の桁数, 丸め方法(切り上げ、切り捨て、四捨五入など))
今回は使ってないので割愛します。

比較したい

「compareTo」を使います。

比較演算子 戻り値
A < B AがBより小さい場合は-1を返す A.compareTo(B) < 0
A > B AがBより大きい場合は1を返す A.compareTo(B) > 0
A == B AとBが等しい場合は0を返す A.compareTo(B) == 0

研修で調べた時は「より小さい(<)」ではなく、「以下(<=)」にしたかったのでこんな感じで書きましたが

// 「より大きい」ではない(頭ぐちゃぐちゃになるわ)
if (!(A.compareTo(B) == 1)) {
}

// これでよかったみたい
if (A.compareTo(B) <= 0) {
}

BigDecimal↔︎Stringの変換

String型で入力値を受けて、処理のためにBigDecimalに変換するということもしたので記載します。

BigDecimal→String

String String型変数名 = BigDecimal型.toString();

String→BigDecimal

BigDecimal BigDecimal型変数名 = new BigDecimal(String型);

参考

https://docs.oracle.com/javase/jp/11/docs/api/java.base/java/math/BigDecimal.html
https://www.sejuku.net/blog/25564
https://techacademy.jp/magazine/31915

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0