如何用点格式化双倍?

2022-08-31 16:34:55

如何将 Double with 格式化为字符串,并在整数和小数部分之间使用点?String.format

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

上述格式仅带逗号:“,”。


答案 1

String.format(String, Object ...)正在使用 JVM 的缺省语言环境。您可以直接使用 java.util.Formatter 的任何语言环境。String.format(Locale, String, Object ...)

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 ...

答案 2

基于这篇文章,你可以这样做,它在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

答案编辑和修复感谢凯文范米尔洛评论