我收到错误:
无法解释的数字:位置2的“10.00”
此处在文本字段(UI)中输入值10。与locale en_US相同的工作正常。
记录跟踪:
com.opensymphony.xwork2.XWorkException:无法解析的数字:位置2的“10.00” 在com.opensymphony.xwork2.conversion.impl.NumberConverter.convertToDouble(NumberConverter.java:108)〜[struts2-core-2.5.13.jar:2.5.13] at com.opensymphony.xwork2.conversion.impl.NumberConverter.convertValue(NumberConverter.java:29)〜[struts2-core-2.5.13.jar:2.5.13] 在com.opensymphony.xwork2.conversion.impl.NumberConverter.convertValue(NumberConverter.java:65)〜[struts2-core-2.5.13.jar:2.5.13] 在com.opensymphony.xwork2.conversion.impl.XWorkBasicConverter.doConvertToNumber(XWorkBasicConverter.java:205)〜[struts2-core-2.5.13.jar:2.5.13] 在com.opensymphony.xwork2.conversion.impl.XWorkBasicConverter.convertValue(XWorkBasicConverter.java:108)〜[struts2-core-2.5.13.jar:2.5.13] 在com.opensymphony.xwork2.conversion.impl.XWorkConverter.convertValue(XWorkConverter.java:311)[struts2-core-2.5.13.jar:2.5.13] at com.opensymphony.xwork2.ognl.OgnlTypeConverterWrapper.convertValue(OgnlTypeConverterWrapper.java:39)[struts2-core-2.5.13.jar:2.5.13] 在ognl.OgnlRuntime.getConvertedType(OgnlRuntime.java:1218)[ognl-3.1.15.jar:?] 在ognl.OgnlRuntime.getConvertedTypes(OgnlRuntime.java:1235)[ognl-3.1.15.jar:?]
答案 0 :(得分:0)
由于法国属于countries using Arabic numerals with decimal comma
,因此错误很明显String number = "20,981";
try {
double dNumber = Double.parseDouble(number.replace('.', ','));
System.out.println("My double is " + dNumber);
} catch (NumberFormatException nfe) {
System.out.println("I got exception for invalid string " + number);
}
您可能还想强制执行特定的数字格式:
NumberFormat format = NumberFormat.getInstance(Locale.FRANCE);
Number number = format.parse("1,234");
double d = number.doubleValue();