2014-10-29 32 views
1


我需要從一個String創建一個帶有兩位小數的Double - 換句話說,我需要將「100」轉換爲100.00。
令人驚訝:從一個字符串創建一個帶有兩位小數的Double

double d = Double.valueOf("500"); 
DecimalFormat df = new DecimalFormat("#.00"); 
System.out.print(df.format(d)); 

打印出:

500,00 

我需要,而 「500.00」。我該如何解決它?
謝謝

+4

這取決於您的JVM語言環境。 – meskobalazs 2014-10-29 13:10:00

+0

使用printf查看格式化輸出 – LeatherFace 2014-10-29 13:11:01

+0

import java.text.DecimalFormat; import java.text.NumberFormat; import java.util.Locale; public class Main { public static void main(String [] args)NumberFormat nf = NumberFormat.getNumberInstance(Locale.ENGLISH); DecimalFormat df =(DecimalFormat)nf; df.applyPattern(「#。00」); double d = Double.valueOf(「500」); System.out.print(df.format(d)); } } – 2014-10-29 13:25:54

回答

1

您可以通過設置區域設置或使用DecimalFormatSymbols更改分隔符。

如果你想分組分隔符是一個點,你可以使用歐洲語言環境:

NumberFormat nf = NumberFormat.getNumberInstance(Locale.GERMAN); 
DecimalFormat df = (DecimalFormat)nf; 

或者您可以使用的DecimalFormatSymbols類來更改顯示在由格式產生的格式的數字符號方法。這些符號包括小數點分隔符,分組分隔符,減號,和百分號,其中包括:

DecimalFormatSymbols otherSymbols = new DecimalFormatSymbols(currentLocale); 
otherSymbols.setDecimalSeparator(','); 
otherSymbols.setGroupingSeparator('.'); 
DecimalFormat df = new DecimalFormat(formatString, otherSymbols); 


此外,你可能會發現這個有用:http://tutorials.jenkov.com/java-internationalization/decimalformat.html解釋幾乎一切關於你的問題一個非常簡單和不錯的方式。

+0

謝謝,我已經在建議的副本中找到它,但您的答案是正確的。 – user2824073 2014-10-29 13:21:33

+0

是的,我提供了快速參考以防萬一你錯過了,但我建議看看教程鏈接。我看起來很好。美好的一天。 – EMM 2014-10-29 13:30:12

相關問題