はじめに
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