2016-05-06 36 views
0

我想從菲律賓的數字中得到一個雙精度值。 「2,3456」。java.text.ParseException:無法解析的數字:「2,3456」(在偏移量5)

這就是我想要做的。

try { 
    return NumberFormat.getInstance(new Locale("en","PH")).parse("2,3456").doubleValue(); 
} catch (ParseException e) { 
    e.printStackTrace(); 

} 

我得到了菲律賓無法解析異常,但如果我使用相同的代碼爲印尼與印尼的語言環境與字符串「2.3456」這是工作的罰款。

菲律賓語區域的問題是什麼?

+0

Do菲律賓使用「,」作爲小數點分隔符嗎?如果不是,請使用「。」。代替。 – Tom

+0

@Tom「,」是一個千分位。我只是想解析我收到的字符串 – Beginner

+1

它似乎工作正常:http://ideone.com/okLW5W – assylias

回答

0

菲律賓人使用點作爲小數點分隔符和逗號作爲千位分隔符。但是,由於解析器關於千位分隔符的位置失效,因此在Phillipines語言環境下,2,3456是有效的。

另請參見https://en.wikipedia.org/wiki/Decimal_mark

+0

這是不正確的,因爲'「2,3456」'可以正確解析('「2,3,4,56」')。解析器對千位分隔符的位置沒有那麼嚴格,因爲無論如何它並不重要。它不會改變結果數字。 – Tom

+0

即使逗號在不同的地方也應該正常工作 – Beginner

相關問題