¿Cómo haría los cálculos con números extremadamente grandes en Java?
Lo he intentado, long
pero alcanza un máximo de 9223372036854775807, y cuando utilizo un número entero no guarda suficientes dígitos y, por lo tanto, no es lo suficientemente preciso para lo que necesito.
¿Hay alguna forma de evitar esto?
java
numbers
integer
biginteger
Petey B
fuente
fuente
9223372036854775807
es el valor exacto deLong.MAX_VALUE
, de todos modos.Respuestas:
Puede usar la
BigInteger
clase para enteros yBigDecimal
para números con dígitos decimales. Ambas clases están definidas enjava.math
paquete.Ejemplo:
fuente
Utilice la
BigInteger
clase que forma parte de la biblioteca de Java.http://java.sun.com/j2se/1.5.0/docs/api/java/math/BigInteger.html
fuente
Aquí hay un ejemplo que obtiene grandes números muy rápidamente.
fuente
Checkout
BigDecimal
yBigInteger
.fuente
fuente
Dependiendo de lo que esté haciendo, es posible que desee echar un vistazo a GMP (gmplib.org), que es una biblioteca de precisión múltiple de alto rendimiento. Para usarlo en Java, necesita envoltorios JNI alrededor de la biblioteca binaria.
Vea algunos de los códigos de Alioth Shootout para ver un ejemplo de cómo usarlo en lugar de BigInteger para calcular Pi a un número arbitrario de dígitos.
https://benchmarksgame-team.pages.debian.net/benchmarksgame/program/pidigits-java-2.html
fuente