2011-03-04 14 views

Respuesta

19

Sí, utilice java.math.BigDecimal clase. Puede representar números con gran precisión.

Si solo necesita enteros enormes, puede usar java.math.BigInteger en su lugar.

Ambos extienden java.math.Number.

Usted puede incluso utilizar sus dobles existentes si es necesario:

double d = 67.67; 
BigDecimal bd = new BigDecimal(d); 

Y se puede obtener valores BigDecimal de bases de datos con JDBC:

ResultSet rs = st.executeQuery(); 
while(rs.next()) { 
    BigDecimal bd = rs.getBidDecimal("column_with_number"); 
} 

desgracia, ya que Java no soporta la sobrecarga de operadores , no puede usar símbolos regulares para operaciones matemáticas comunes como lo haría en C# y en el tipo decimal.

Usted tendrá que escribir código como este:

BigDecimal d1 = new BigDecimal(67.67); 
BigDecimal d2 = new BigDecimal(67.68); 
BidDecimal d3 = d1.add(d2); // d1 + d2 is invalid 
1

Uso BigDecimal que ofrece una precisión mucho mejor

2

Sí: la clase java.math.BigDecimal.

1

Sí, puede usar una clase de precisión arbitraria como BigDecimal.

1

puede utilizar un BigDecimal

Para calcular con BigDeciamls con esta clase proporciona métodos especiales que se utilizan en lugar de los operadores estándar, por ejemplo, + - */... que desde int, doble y así sucesivamente ...

0

Depende del rango de su entrada. Muchas veces, puedes usar int o long. Por dinero, simplemente almacene el número entero de centavos. int manejará hasta $ 20,000,000.00 que es lo suficientemente grande para mi cuenta bancaria. largo va mucho más alto.

Si su rango es adecuado, usar long es mucho más rápido y más limpio que usar BigDecimal

Cuestiones relacionadas