web-dev-qa-db-ja.com

Doubleをドットでフォーマットする方法は?

String.formatを使用してDoubleを整数部と小数部の間にドットを含む文字列にフォーマットするにはどうすればよいですか?

String s = String.format("%.2f", price);

上記の形式は、コンマ "、"のみでフォーマットされます。

42
Shikarn-O

String.format(String, Object ...)は、JVMのデフォルトロケールを使用しています。 String.format(Locale, String, Object ...)または Java.util.Formatter 直接。

String s = String.format(Locale.US, "%.2f", price);

または

String s = new Formatter(Locale.US).format("%.2f", price);

または

// do this at application startup, e.g. in your main() method
Locale.setDefault(Locale.US);

// now you can use String.format(..) as you did before
String s = String.format("%.2f", price);

または

// set locale using system properties at JVM startup
Java -Duser.language=en -Duser.region=US ...
99
sfussenegger

これに基づいて post あなたはこのようにすることができ、Android 7.0

import Java.text.DecimalFormat
import Java.text.DecimalFormatSymbols

DecimalFormat df = new DecimalFormat("#,##0.00");
df.setDecimalFormatSymbols(new DecimalFormatSymbols(Locale.ITALY));
System.out.println(df.format(yourNumber)); //will output 123.456,78

この方法では、Localeに基づいてドットとコンマを使用できます

ケビン・ファン・ミールロのコメントのおかげで、回答が編集および修正されました

1
Ultimo_m