¿Cómo convertimos BigDecimalen Doubleen Java? Tengo un requisito en el que tenemos que usar Double como argumento, pero lo estamos obteniendo, BigDecimalasí que tengo que convertirlo BigDecimalen Double.
Lea siempre la documentación antes de hacer una pregunta. A menudo encontrará que su pregunta ha sido respondida. Ver doubleValue(). (Sugerencia: para encontrar la documentación de una clase específica, simplemente busque en Google el nombre de la clase, seguido de java. Por ejemplo, para encontrar esta documentación, busqué "BigDecimal Java")
Justin
1
"Tengo un requisito en el que tenemos que usar Double como argumento" Cambie el requisito. No tiene sentido usarlo BigDecimala menos que lo use de un extremo a otro. Este requisito compromete la precisión; puede comprometer el cumplimiento normativo; y puede constituir negligencia procesable.
Marqués de Lorne
¿Por qué estás usando Doubley no double? ¿Es un campo que puede ser null?
Peter Lawrey
@EJP El uso doubleno es tan malo, pero como tiene más de 15 dígitos de precisión de representación, que es más de lo que la mayoría de los programas necesitan, pero estoy de acuerdo en que no tiene sentido usar BigDecimal algunas veces, ya que es más probable que agregue errores / complejidad.
Peter Lawrey
Respuestas:
225
doubleValue()Debe utilizar el método para obtener el valor doble de un objeto BigDecimal.
BigDecimal bd;// the value you getdouble d = bd.doubleValue();// The double you want
Hola, utilicé el mismo, pero el problema es que ambos anser son diferentes, mi salida decimal fue 13555261857.79 y cuando se convirtió al doble de su 1.355526185779E10 .. ¿Cómo obtengo el mismo resultado después de convertir decimal a doble
Usuario13926345
@ user13926345: ambos son los mismos valores. Solo que la primera salida es la representación normal del valor y la otra es la representación científica .
SudoRahul
35
Puede convertir BigDecimala doubleusing .doubleValue(). Pero créame, no lo use si tiene manipulaciones monetarias. Siempre debe realizarse en BigDecimalobjetos directamente. La pérdida de precisión en estos cálculos es un gran problema en los cálculos relacionados con la moneda.
new BigDecimal(2).doubleValue()
doubleValue()
. (Sugerencia: para encontrar la documentación de una clase específica, simplemente busque en Google el nombre de la clase, seguido de java. Por ejemplo, para encontrar esta documentación, busqué "BigDecimal Java")BigDecimal
a menos que lo use de un extremo a otro. Este requisito compromete la precisión; puede comprometer el cumplimiento normativo; y puede constituir negligencia procesable.Double
y nodouble
? ¿Es un campo que puede sernull
?double
no es tan malo, pero como tiene más de 15 dígitos de precisión de representación, que es más de lo que la mayoría de los programas necesitan, pero estoy de acuerdo en que no tiene sentido usar BigDecimal algunas veces, ya que es más probable que agregue errores / complejidad.Respuestas:
doubleValue()
Debe utilizar el método para obtener el valor doble de un objeto BigDecimal.fuente
Puede convertir
BigDecimal
adouble
using.doubleValue()
. Pero créame, no lo use si tiene manipulaciones monetarias. Siempre debe realizarse enBigDecimal
objetos directamente. La pérdida de precisión en estos cálculos es un gran problema en los cálculos relacionados con la moneda.fuente
Utilice el método doubleValue presente en la clase BigDecimal :
Convierte esto
BigDecimal
adouble
.fuente