Tengo un BigDecimal
campo amount
que representa el dinero, y tengo que imprimir su valor en el navegador en un formato como $123.00
, $15.50
, $0.33
.
¿Cómo puedo hacer eso?
(La única solución simple que veo yo es conseguir floatValue
a partir BigDecimal
y después usar NumberFormat
para hacer una precisión de dos dígitos para la parte fraccionaria).
Para establecer un separador de miles, digamos
123,456.78
que debe usar DecimalFormat :Aquí está el resultado:
Aunque configuré la
#,###.00
máscara, también formatea con éxito los valores más largos. Tenga en cuenta que el separador de coma (,) en el resultado depende de su configuración regional. Puede ser solo espacio () para la configuración regional rusa.fuente
"#,##0.00"
lugar.Otra forma que podría tener sentido para la situación dada es
Solo digo esto porque en algunos casos cuando se trata de dinero que va más allá de 2 lugares decimales no tiene sentido. Llevando esto un paso más allá, esto podría llevar a
pero simplemente quería resaltar el método setScale (que también puede tomar un segundo argumento de modo de redondeo para controlar cómo se maneja ese último decimal. En algunas situaciones, Java te obliga a especificar este método de redondeo).
fuente
// imprime 3.14
// imprime 13
fuente
Similar a la respuesta de @Jeff_Alieffson, pero sin depender del valor predeterminado
Locale
:Usar
DecimalFormatSymbols
para configuración regional explícita:O símbolos de separación explícitos:
Luego:
Resultado:
fuente
fuente