我有几个显示数值的标签,我需要将这些文本解析为数字。问题是当值大于999时,解析方法失败,抛出以下异常:
线程中的异常" AWT-EventQueue-0" java.lang.NumberFormatException:对于输入字符串:" 1,000.00"在 java.lang.NumberFormatException.forInputString(Unknown Source)
我尝试了几种解析方法,例如Double.valueOf(string)
,新BigDecimal(string)
,new BigInteger(string)
等等......但总是抛出异常。
答案 0 :(得分:6)
我猜你使用的是法国号码。 您可以add a Locale to NumberFormat和parse in the documentation:
NumberFormat.getNumberInstance(Locale.FRANCE).parse("1,000")
答案 1 :(得分:4)
在解析之前删除逗号:
double d = Double.parseDouble(string.replace(",", ""));