方法1: Mathクラスのsqrtメソッドを使用する JavaのMathクラスには、double型の平方根を計算するためのsqrtメソッドがあります。しかし、BigDecimalオブジェクトを直接sqrtメソッドに渡すことはできません。そのため、BigDecimalをdoubleに変換してから計算する必要があります。以下にコード例を示します。
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
BigDecimal number = new BigDecimal("16");
double result = Math.sqrt(number.doubleValue());
BigDecimal sqrt = new BigDecimal(result);
System.out.println(sqrt);
}
}
このコードでは、BigDecimalオブジェクトの値を16として設定し、Math.sqrtメソッドを使用して平方根を計算しています。計算結果はdouble型の値として得られますが、最終的な結果をBigDecimalオブジェクトとして表示するために再度BigDecimalに変換しています。
方法2: BigDecimalのルートメソッドを使用する Java 9以降では、BigDecimalクラスにルートメソッドが追加されました。このメソッドを使用すると、BigDecimalオブジェクトの平方根を直接計算することができます。以下にコード例を示します。
import java.math.BigDecimal;
import java.math.MathContext;
import java.math.RoundingMode;
public class Main {
public static void main(String[] args) {
BigDecimal number = new BigDecimal("16");
BigDecimal sqrt = number.sqrt(new MathContext(10, RoundingMode.HALF_UP));
System.out.println(sqrt);
}
}
このコードでは、BigDecimalオブジェクトの値を16として設定し、sqrtメソッドを使用して平方根を計算しています。MathContextクラスを使用して計算の精度と丸めモードを指定しています。この例では、10桁の精度を指定し、丸めモードとしてHALF_UPを使用しています。
以上がJavaでBigDecimalの平方根を計算する方法です。適切な方法を選んで使用してください。