JavaでBigDecimalを使用する方法を教えてください。
BigDecimalクラスは、Javaにおける任意の精度の10進数を表現および操作するクラスです。正確な計算能力を提供し、浮動小数点計算で発生する丸め誤差を回避します。
以下に、BigDecimalの一般的なメソッドと使用方法を示します。
- BigDecimalオブジェクトの作成:
- BigDecimal num1 = new BigDecimal(10);
BigDecimal num2 = new BigDecimal(3.14); - BigInteger を使い、BigInteger bigInteger = BigInteger.valueOf(1234); BigDecimal num3 = new BigDecimal(bigInteger); を生成
- BigDecimal num4 = new BigDecimal(“1000”);
- 基本的な算術演算を行う:
- BigDecimal result = num1.add(num2); // 加法
BigDecimal result = num1.subtract(num2); // 減法
BigDecimal result = num1.multiply(num2); // 乗法
BigDecimal result = num1.divide(num2); // 除法、割り切れない時は例外をスロー
BigDecimal result = num1.divide(num2, 2, RoundingMode.HALF_UP); // 少数点桁数と丸めモードの設定 - サイズを比較する。
- int compare = num1.compareTo(num2); // -1(小さい)、0(等しい)、1(大きい) を返す
boolean equalTo = num1.equals(num2); // 等しいかどうかを判定 - 精度と丸めモードを設定する:
- BigDecimal result = num1.setScale(2, RoundingMode.HALF_UP); // 小数点以下の桁数と四捨五入のモードを設定します
- 日本語でネイティブに文章を言い換えてください。1 つのオプションのみが必要です。
- int intValue = num1.intValue(); // int型へ変換
long longValue = num1.longValue(); // long型へ変換
double doubleValue = num1.doubleValue(); // double型へ変換 - 他の一般的な方法:
- BigDecimal rounded = num1.round(new MathContext(32, MathContext.DECIMAL32));
BigDecimalは不変クラスのため、すべての計算操作は新しいBigDecimalオブジェクトを返すことに注意してください。また、除算演算では例外がスローされる可能性があるので、状況に応じて例外処理が必要です。