Comment procéder pour faire des calculs avec des nombres extrêmement grands en Java?
J'ai essayé long
mais cela maximise à 9223372036854775807, et lors de l'utilisation d'un entier, il n'enregistre pas suffisamment de chiffres et n'est donc pas assez précis pour ce dont j'ai besoin.
Y a-t-il de toute façon autour de cela?
java
numbers
integer
biginteger
Petey B
la source
la source
9223372036854775807
est la valeur exacte deLong.MAX_VALUE
, de toute façon.Réponses:
Vous pouvez utiliser la
BigInteger
classe pour les entiers etBigDecimal
pour les nombres avec des chiffres décimaux. Les deux classes sont définies dans lejava.math
package.Exemple:
la source
Utilisez la
BigInteger
classe qui fait partie de la bibliothèque Java.http://java.sun.com/j2se/1.5.0/docs/api/java/math/BigInteger.html
la source
Voici un exemple qui obtient très rapidement de gros chiffres.
la source
Caisse
BigDecimal
etBigInteger
.la source
la source
En fonction de ce que vous faites, vous voudrez peut-être jeter un œil à GMP (gmplib.org) qui est une bibliothèque multi-précision haute performance. Pour l'utiliser en Java, vous avez besoin de wrappers JNI autour de la bibliothèque binaire.
Voir une partie du code Alioth Shootout pour un exemple de son utilisation à la place de BigInteger pour calculer Pi à un nombre arbitraire de chiffres.
https://benchmarksgame-team.pages.debian.net/benchmarksgame/program/pidigits-java-2.html
la source