Tengo algunos problemas para formatear los decimales de un doble. Si tengo un valor doble, por ejemplo, 4.0, ¿cómo formateo los decimales para que sean 4.00?
java
formatting
double
decimal
Christoffer
fuente
fuente
String.format()
ojava.text.Format
.Respuestas:
Una de las formas sería usar NumberFormat .
Salida:
4,00
fuente
Con Java 8, puede utilizar el
format
método ..: -f
se utiliza para elfloating
valor en puntos.2
después de decimal denota, número de lugares decimales después.
Para la mayoría de las versiones de Java, puede utilizar
DecimalFormat
: -fuente
Utilice String.format :
String.format("%.2f", 4.52135);
Según los documentos:
fuente
Usando String.format, puede hacer esto:
Observe la coma que hace que esto sea diferente de la respuesta de @ Vincent
Salida:
$52,000.00
Un buen recurso para formatear es la página oficial de Java sobre el tema.
fuente
Siempre puede usar el método estático
printf from System.out
; luego, implementará el formateador correspondiente; esto ahorra mucho espacio en el que otros ejemplos requieren que lo haga.Ex:
Ahorra espacio en el montón, lo cual es una gran ventaja, sin embargo, tengo la opinión de que este ejemplo es mucho más manejable que cualquier otra respuesta, especialmente porque la mayoría de los programadores conocen la función printf de C (aunque Java cambia ligeramente la función / método).
fuente
out
es elPrintStream
.printf
es un método estático dePrintStream
. Ver aquí ;) Pero +1 de todos modos.fuente
fuente
Un método alternativo es utilizar el
setMinimumFractionDigits
método delNumberFormat
clase.Aquí, básicamente, especifica cuántos números desea que aparezcan después del punto decimal.
Entonces, una entrada de
4.0
produciría4.00
, asumiendo que la cantidad especificada fuera 2.Pero, si tu
Double
entrada contiene más de la cantidad especificada, tomará la cantidad mínima especificada, luego agregará un dígito más redondeado hacia arriba / hacia abajoPor ejemplo,
4.15465454
con una cantidad mínima de 2 especificada se producirá4.155
Pruébelo en línea
fuente
Hay muchas formas de hacer esto. Estos se dan a continuación:
Suponga que su número original se da a continuación:
Usando NumberFormat:
Usando String.format:
Usando DecimalFormat y patrón:
Usando DecimalFormat y patrón
En todos los casos la salida será: 2354548.23
Nota :
Durante el redondeo, puede agregar
RoundingMode
su formateador. A continuación, se muestran algunos modos de redondeo:Aquí están las importaciones :
fuente
Puede utilizar cualquiera de los métodos siguientes
Si esta usando
java.text.DecimalFormat
O
Si desea convertirlo en formato de cadena simple
Todo el código anterior imprimirá 4.00
fuente
Funciona al 100%.
fuente
Primera importación
NumberFormat
. Luego agrega esto:Esto le dará dos lugares decimales y pondrá un signo de dólar si se trata de moneda.
fuente
Puedes hacerlo de la siguiente manera:
fuente
##
lugar de00
Sé que este es un tema antiguo, pero si realmente desea tener el punto en lugar de la coma, simplemente guarde su resultado como X, 00 en una cadena y luego simplemente cámbielo por un período para obtener el X.00
La forma más sencilla es usar reemplazar.
La salida será la X.00 que deseaba. Además, para que sea más fácil, puede hacerlo todo a la vez y guardarlo en una variable doble:
Sé que esta respuesta no es útil en este momento, pero tal vez alguien que consulte este foro esté buscando una solución rápida como esta.
fuente