とにかくdouble
値からBigInteger
に変換する方法はありますか?
double doubleValue = 64654679846513164.2;
BigInteger bigInteger = (BigInteger) doubleValue;
キャストしようとしましたがうまくいきませんでした。
BigIntegerは、小数ではなく、任意精度の整数を保持するために作成されています。 BigDecimal
クラスを使用して、doubleを保持できます。
BigDecimal k = BigDecimal.valueOf(doublevalue);
一般に、キャストJavaプリミティブを別のクラスに入力することはできません。私が知っている例外は、Number
などのLong
を拡張するクラスです。 Integer
ラッパークラス。これにより、int値をIntegerにキャストできます。
DoubleをBigDecimal
に変換し、thenをBigInteger
に変換できます。
BigInteger k = BigDecimal.valueOf(doublevalue).toBigInteger();