web-dev-qa-db-fra.com

est-il possible de convertir de Double à BigInteger?

Existe-t-il de toute façon une conversion de la valeur de double en BigInteger?

double doubleValue = 64654679846513164.2;
BigInteger bigInteger = (BigInteger) doubleValue;

J'essaye de le lancer mais ça n'a pas marché.

16
Krack

BigInteger est conçu pour contenir des nombres entiers de précision arbitraire, pas des décimales. Vous pouvez utiliser la classe BigDecimal pour contenir un double.

BigDecimal k = BigDecimal.valueOf(doublevalue);

En général, vous ne pouvez pas taper cast une primitive Java dans une autre classe. Les exceptions que je connais sont les classes étendant Number, telles que Long et Integer classes wrapper, qui vous permettent de transtyper une valeur int en entier, et ainsi de suite.

18
Kon

Vous pouvez convertir le double en BigDecimal et alors en BigInteger:

BigInteger k = BigDecimal.valueOf(doublevalue).toBigInteger();
41
bb94