我想將可能帶有貨幣符號前綴的十進制值轉換爲數字值。
例如 -
的值可以是像以下任何將帶有貨幣符號的數值轉換回帶有NumberFormat的十進制
String s1 = "£32,847,676.65";
String s2 = "£3,456.00";
String s3 = "£831,209";
我想結果之後轉換到像 - 32847676.65
,3456.00
和831209
。
我試圖用這種方式的NumberFormat parse()
方法 -
NumberFormat nf = NumberFormat.getCurrencyInstance(Locale.UK);
numberFormat.setMinimumFractionDigits(2);
Number num = nf.parse(s1);
double dd = num.doubleValue();
BigDecimal gg = new BigDecimal(dd);
System.out.println(gg);
但結果是 - 32847676.649999998509883880615234375
這是不太完全正確的。
我需要它是數字,以便可以我可以執行某種計算。
你能指導我與我還有什麼我可以嘗試
對不起,這是行不通的。如果我sysout'gg.toString()'或'gg.toPlainString()'它會導致'3.3E + 7'和'33000000' – 2011-03-30 10:32:55
@ Swift-Tuttle:對不起,請試試這個變種 – Daniel 2011-03-30 10:37:37
是的,用RoundingMode作品完美。非常感謝。讚賞。 – 2011-03-30 10:47:58