Actualmente uso el siguiente código para imprimir un doble:
return String.format("%.2f", someDouble);
Esto funciona bien, excepto que Java usa el separador decimal de mi Locale (una coma) mientras que me gustaría usar un punto. ¿Hay una forma fácil de hacer esto?
java
formatting
double
dtech
fuente
fuente
Respuestas:
Utilice la sobrecarga
String.format
que le permite especificar la configuración regional:Si solo está formateando un número, como está aquí, entonces
NumberFormat
probablemente usarlo sería más apropiado. Pero si necesita el resto de las capacidades de formato deString.format
, esto debería funcionar bien.fuente
Una solución más drástica es configurar su Locale al principio de main ().
Me gusta:
fuente
Puede pasar un Locale adicional a java.lang.String.format así como a java.io.PrintStream.printf (por ejemplo, System.out.printf ()):
Esto da como resultado lo siguiente (en mi PC):
Consulte String.format en la API de Java.
fuente
out.printf((Locale)null, ...)
oout.format((Locale)null, ...)
para obtener una representación local independiente. (y también hayLocale.ROOT
)Demasiado tarde, pero como se mencionó aquí, se muestra el uso de muestra de
NumberFormat
(y su subclaseDecimalFormat
)fuente
DecimalFormatSymbols
y configuración del separador debe realizarse una vez, antes de este método.Puede utilizar NumberFormat y DecimalFormat.
Eche un vistazo a este enlace de Java Tutorials LocaleSpecific Formatting
La sección titulada Formato sensible a la configuración regional es lo que necesita.
fuente
Tuve el mismo problema ...
55.1
transformado a55,10
. Mi solución rápida (¿sucia?) Es:String.format("%.2f", value).replaceAll(",",".");
fuente