Ponto de força (“.”) Como separador decimal em java

Eu atualmente uso o seguinte código para imprimir um duplo:

return String.format("%.2f", someDouble); 

Isso funciona bem, exceto que o Java usa o separador decimal do Locale (uma vírgula) enquanto eu gostaria de usar um ponto. Existe uma maneira fácil de fazer isso?

Use a sobrecarga de String.format que permite especificar a localidade:

 return String.format(Locale.ROOT, "%.2f", someDouble); 

Se você estiver formatando um número – como está aqui -, usar o NumberFormat provavelmente seria mais apropriado. Mas se você precisar do restante dos resources de formatação do String.format , isso deve funcionar bem.

Uma solução mais drástica é definir seu Locale no início do main ().

Gostar:

 Locale.setDefault(new Locale("en", "US")); 

Você pode passar um Locale adicional para java.lang.String.format, bem como para java.io.PrintStream.printf (por exemplo, System.out.printf ()):

 import java.util.Locale; public class PrintfLocales { public static void main(String args[]) { System.out.printf("%.2f: Default locale\n", 3.1415926535); System.out.printf(Locale.GERMANY, "%.2f: Germany locale\n", 3.1415926535); System.out.printf(Locale.US, "%.2f: US locale\n", 3.1415926535); } } 

Isso resulta no seguinte (no meu PC):

 $ java PrintfLocales 3.14: Default locale 3,14: Germany locale 3.14: US locale 

Veja String.format na API Java.

Muito tarde, mas como outro mencionado aqui é o uso de exemplo de NumberFormat (e sua subclass DecimalFormat )

 public static String format(double num) { DecimalFormatSymbols decimalSymbols = DecimalFormatSymbols.getInstance(); decimalSymbols.setDecimalSeparator('.'); return new DecimalFormat("0.00", decimalSymbols).format(num); } 

Você pode usar NumberFormat e DecimalFormat.

Dê uma olhada neste link do Java Tutorials LocaleEspecificação específica

A seção intitulada Formatação com Locale-Sensitive é o que você precisa.

Eu tive o mesmo problema .. 55.1 transformado em 55,10 . Minha correção rápida (suja?) É:

String.format("%.2f", value).replaceAll(",",".");

Intereting Posts