如何将带有String.format
的Double格式化为整数和小数部分之间的点?
String s = String.format("%.2f", price);
以上格式仅使用逗号:“,”。
答案 0 :(得分:94)
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 ...
答案 1 :(得分:1)
根据此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
通过Kevin van Mierlo评论
编辑并修复了答案答案 2 :(得分:-2)
如果它与PHP和C#中的相同,则可能需要以某种方式设置您的语言环境。可能会在Java Internationalization FAQ中找到更多相关信息。