¿Cuál es la mejor forma de comparar un BigDecimal y un int en Java: convertir BigDecimal en int o convertir int en BigDecimal?Comparación de BigDecimal e int en Java
Respuesta
Si usted espera que el valor BigDecimal
a ser muy grande (es decir, fuera del rango de valores int
, que es -2 a 2 -1) y/o para contener dígitos decimales, o simplemente quiere juega seguro, debes convertir el int
en BigDecimal
para evitar errores de desbordamiento/truncamiento.
De lo contrario, si el rendimiento es un problema realmente grande (que es raro), podría ser mejor al revés.
¡Eso es exactamente lo que quería saber! Gracias @peter! – HighBit
Una razón para no convertir int a BigDecimal es el hecho de que crearía un objeto nuevo, por lo tanto, realmente está tirando basura en su montón para realizar la igualdad. Además, la igualdad primitiva sería más rápida que la del objeto BigInteger real también.
¿Por qué sería esto "tirar basura en el montón"? –
pero esto podría provocar un desbordamiento y el resultado podría ser incorrecto. Si BigDecimal bd = maxint +1 y bd se convierten a int, el resultado será 1 – nist
Claro, depende del uso real de Case. @Oli cada vez para el caso de comparación crearía un nuevo objeto BigInteger, que podría no ser necesario y que reside en el montón, en lugar de tomar el valor primitivo real ya almacenado dentro del objeto BigInt – Bober02
Quiere convertir el int
en un BigDecimal
.
Esto se debe a que no siempre podrá convertir un BigDecimal en un int; Perderá información después del punto decimal y el valor de BigDecimal podría estar fuera del rango de un int.
Como BigDecimal
amplía la gama de int
que tendrá que convertir el int
en BigDecimal
para asegurarse de que se pueden comparar, de todos modos.
- 1. Diferencia entre int e INT recibida por Parseint en Java
- 2. BigDecimal Problema en java
- 3. BigDecimal en Java
- 4. comparación con int size_t
- 5. Comparación de rendimiento de int y entero
- 6. Problemas de precisión Java BigDecimal
- 7. java BigDecimal arithmaticException operación no válida
- 8. Añadiendo char e int
- 9. Uso de la memoria Java BigDecimal?
- 10. Java, BigDecimal. Problemas con la división
- 11. Concatenar un Varchar e int
- 12. BigDecimal no se puede forzar en BigDecimal
- 13. Sobrecarga con Corto e int
- 14. ¿Diferencia entre long e int en C#?
- 15. Unsigned Int en JPA e Hibernate
- 16. Comparación de HashMaps en Java
- 17. Comparación de cadenas en Java
- 18. Java BigDecimal eliminar números decimales y finales
- 19. ArrayLists e indexadores en Java
- 20. ¿Cómo puedo crear un BigDecimal aleatorio en Java?
- 21. ¿Por qué Java BigDecimal devuelve 1E + 1?
- 22. Comparación de matrices Java
- 23. Comparación entre JasperReports e iText/iTextpdf
- 24. Unsigned Int en Java
- 25. Convertir doble a BigDecimal y establecer BigDecimal Precision
- 26. ¿Cuál es la diferencia entre int [] [] e int [,]?
- 27. Cómo convertir de float a bigDecimal en java?
- 28. ¿Cuáles son las diferencias entre usar int [] [] e int [,]?
- 29. BIGINT rendimiento de mysql en comparación con INT
- 30. Diferencia entre int * p e int * p declaración
Si convierte el BigDecimal a int, es probable que exceda su rango. –