¿Hay un tipo de datos en Java que almacena un número decimal con mayor precisión que un double
?tipo de datos numéricos más precisos que el doble?
Respuesta
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
Uso BigDecimal que ofrece una precisión mucho mejor
Sí: la clase java.math.BigDecimal.
Sí, puede usar una clase de precisión arbitraria como BigDecimal.
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 ...
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
- 1. Usando el tipo de datos numéricos correctos
- 2. Si flotante y doble no son precisos, ¿cómo hacen los bancos cálculos precisos que involucran dinero?
- 3. Doble más que el símbolo en JavaScript
- 4. ¿Hay sufijos numéricos para especificar un doble?
- 5. ¿Cómo puedo obtener resultados más precisos de gcov?
- 6. ¿Qué es más grande que un doble?
- 7. Entity Framework mapea el tipo de datos float en doble
- 8. ¿Mensajes de error de diagnóstico más precisos con plantillas?
- 9. ¿Está utilizando el doble más rápido que el flotador?
- 10. ¿PHP tiene un tipo de datos más grande que int?
- 11. ¿doble o flotante, que es más rápido?
- 12. Comparador de doble tipo
- 13. error de desbordamiento aritmético al convertir numérico para el tipo de datos numéricos
- 14. lista de doble enlace C con tipo de datos abstracto
- 15. Modelado de infinito para el valor doble más grande
- 16. Tipo de datos doble o flotante en Flex?
- 17. ¿Cómo solo seleccionar datos numéricos de mysql?
- 18. C# - Los sufijos numéricos
- 19. JasperReports: Cómo formatear datos numéricos con el exportador de Excel
- 20. Ordenando datos más grandes que el tamaño de RAM
- 21. Parcela con datos no numéricos en el eje x
- 22. ¿Cuál es el tipo de datos mejor y más preciso para almacenar la longitud de latitud en iphone xcode?
- 23. C# - problema con números muy pequeños - no hay suficientes dígitos en el tipo de datos doble
- 24. Cómo convertir el tipo de doble a cadena de iPhone?
- 25. ¿El nvarchar siempre ocupa el doble de espacio que varchar?
- 26. Clase abstracta que hereda el tipo más derivado
- 27. expresiones regulares procesamiento de datos numéricos: coincide con una serie de números mayores que X
- 28. Cómo esperar hasta el lugar gerente para conseguir altas datos precisos
- 29. próximo más alto/más bajo IEEE precisión doble número
- 30. Formato tipo doble con el número mínimo de dígitos decimales