我有以下代碼:如何將「格式化的double(String)」轉換爲double?
NumberFormat nf=NumberFormat.getInstance(Locale.FRANCE);
nf.setMinimumFractionDigits(3);
String s= nf.format(3456.32);
// double d= Double.valueOf(s); error here
System.out.println(s);
此代碼顯示:
3 456,320
它的好到現在爲止,但是當我從一個JFormattedTextField上獲得相同的格式想象,我怎麼可以改變一個「3 456,320「作爲字符串加倍(3456.32)?
我已經嘗試過這樣的:
String s="3 456,320";
double d= Double.valueOf(s);
,但我得到一個錯誤......
編輯:
經過多次試驗,我發現代碼並不強勁,例如:
//this works
String s="3456,6567";
NumberFormat nf1=NumberFormat.getInstance(Locale.FRANCE);
double d = (double) nf1.parse(s);
但是這一個:
String s="3456,0";
NumberFormat nf1=NumberFormat.getInstance(Locale.FRANCE);
double d = (double) nf1.parse(s);
我得到這個錯誤:在線程
異常 「主要」 java.lang.ClassCastException:java.lang.Long中不能轉換爲java.lang.Double的
通過利弊我發現這非常強大:
double d = nf1.parse(s).doubleValue();
我們必須多次測試軟件!
+1,由於其作品:-) – 2012-03-11 16:40:56
問題已更新,請更新:-) – 2012-03-13 00:10:08