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 meu Locale (uma vírgula), enquanto eu gostaria de usar um ponto. Existe uma maneira fácil de fazer isso?
java
formatting
double
dtech
fonte
fonte
Respostas:
Use a sobrecarga
String.format
que permite especificar a localidade:Se você estiver apenas formatando um número - como você está aqui - então usar
NumberFormat
provavelmente seria mais apropriado. Mas se você precisar do restante dos recursos de formatação doString.format
, isso deve funcionar bem.fonte
Uma solução mais drástica é definir seu Locale no início ().
Gostar:
fonte
Você pode passar um Locale adicional para java.lang.String.format, bem como para java.io.PrintStream.printf (por exemplo, System.out.printf ()):
Isso resulta no seguinte (no meu PC):
Vejo String.format na API Java.
fonte
out.printf((Locale)null, ...)
ouout.format((Locale)null, ...)
para obter uma representação independente de localidade. (e também háLocale.ROOT
)Muito tarde, mas como outro mencionado aqui, é um exemplo de uso de
NumberFormat
(e sua subclasseDecimalFormat
)fonte
DecimalFormatSymbols
e configuração do separador deve ser feita uma vez, antes deste método.Você pode usar NumberFormat e DecimalFormat.
Dê uma olhada neste link dos Tutoriais Java LocaleSpecific Formatting
A seção intitulada Formatação sensível ao local é o que você precisa.
fonte
Eu tive o mesmo problema ..
55.1
transformado em55,10
. Minha solução rápida (suja?) É:String.format("%.2f", value).replaceAll(",",".");
fonte