2011-03-03 56 views
28

如何將帶有String.format的Double格式化爲字符串,並在整數和小數部分之間加上一個點?如何使用點格式化Double?

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

上述格式只能用逗號「:」。

+5

這依賴於語言環境。 – Aillyn 2011-03-03 15:03:54

回答

74

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

添加到列表中: (新的DecimalFormat(「0。##」,新的DecimalFormatSymbols(Locale.US))).format(price); – user1154664 2013-04-07 20:47:16

-1

如果它在PHP和C#中的工作方式相同,則可能需要以某種方式設置您的語言環境。可能會在Java Internationalization FAQ中找到更多關於此的信息。