2009-12-21 27 views

Respuesta

39

Su ejemplo concreto se puede almacenar en long (o java.lang.Long si es necesario).

Si en algún momento necesita números más grandes, puede intentar java.math.BigInteger (si es entero), o java.math.BigDecimal (si decimal)

+9

Estas clases son muy lentos, y sólo debe ser utilizado si realmente necesita una gran cantidad de dígitos. 10 dígitos se pueden almacenar fácilmente en "largo". Sin embargo, si necesita de 50 a 5000 dígitos, estas dos clases son la mejor manera de hacerlo. – Karl

+1

bastante correcto ... Instintivamente asumí que él había intentado lo obvio, y no tuvo éxito. Editó mi respuesta para que sea correcta. – Bozho

28

Puede almacenar esto en un long. Un long puede almacenar un valor de -9223372036854775808 a 9223372036854775807.

+0

cletus: punto tomado, editado. –

7

Una primitiva de longitud o su contenedor java.lang.Long también puede almacenar diez dígitos.

+1

+1 Un largo puede almacenar 18-19 dígitos con absoluta precisión. A menos que el OP indique que necesitan más que esto, una opción larga es mucho mejor que BigInteger. – cletus

3

puede usar largo o doble.

+0

¿Un doble? Si el ejemplo de OP de '999999999' es indicativo, entonces no hay necesidad de introducir imprecisión de coma flotante para un número entero. –

+0

yup ben su derecha, pero solo le estaba mostrando que podemos usar estas cosas también. Realmente depende de los requisitos de su negocio. – akellakarthik

25

Además de todas las otras respuestas, me gustaría señalar que si desea escribir ese número como un literal en su código Java, deberá anexar un L o l para decirle al compilador que es un long constante:

long l1 = 9999999999; // this won't compile 
long l2 = 9999999999L; // this will work 
0

Se puede almacenar mediante la creación de un objeto que se mantenga un número valor de cadena para almacenar en una lista de arreglo. por ejemplo: BigInt objt = new BigInt("999999999999999999999999999999999999999999999999999");

objt ha sido creado por el constructor de la clase BigInt. Dentro de la clase parece.

BigInt{ 

ArrayList<Integer> myNumber = new ArrayList <Integer>();   

public BigInt(){} 

public BigInt(String number){ for(int i; i<number.length; i++){ myNumber.add(number.indexOf(i)); } } 

} 
+1

Esto es completamente irrelevante. Él no preguntó sobre matrices o listas o números con 52 dígitos decimales. Ni siquiera compila. – EJP

6

Utilice BigInt datatype con sus operaciones implícitas. El punto positivo es que no dará respuestas en representación exponencial. Dará resultado integral

Este es un ejemplo de adición

 BigInteger big1 = new BigInteger("1234567856656567242177779"); 
     BigInteger big2 = new BigInteger("12345565678566567131275737372777569"); 
     BigInteger bigSum = big1.add(big2); 
     System.out.println(bigSum); 
+0

Bienvenido a Stack Overflow. si encontró alguna pregunta en cualquier lugar, marque esa pregunta como un duplicado en lugar de dar la misma solución nuevamente. o puede dar un enlace de su respuesta publicado anteriormente. – Shell

Cuestiones relacionadas