nik*_*kos 9 java numberformatexception
我试图从属性文件加载信息,我有以下代码:
anInt = Integer.parseInt(prop.getProperty("anInt"));
aDouble = Double.parseDouble(prop.getProperty("aDouble"));
Run Code Online (Sandbox Code Playgroud)
虽然第一行工作正常,第二个我试图加载一个双变量抛出一个NumberFormatException.具体的异常消息是:
Exception in thread "main" java.lang.NumberFormatException: For input string: "78,5"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1222)
at java.lang.Double.parseDouble(Double.java:510)
at Assignment1.BaseStation.readPropertyFile(BaseStation.java:59)
at Assignment1.BaseStation.main(BaseStation.java:83)
Run Code Online (Sandbox Code Playgroud)
Mal*_*olm 19
如果要使用解析,则必须使用句点作为分隔符,而不是逗号Double.parseDouble().它在Double类的文档中说
FloatingPointLiteral ... [是]在Java语言规范的词汇结构部分中定义.
从Java语言规范:
FloatingPointLiteral:
- 数字.Digits opt ExponentPart opt FloatTypeSuffix opt
- .Digits ExponentPart opt FloatTypeSuffix opt
- Digits ExponentPart FloatTypeSuffix opt
- Digits ExponentPart opt FloatTypeSuffix
如果要考虑区域设置,可以使用java.text.NumberFormat:
NumberFormat nf = NumberFormat.getInstance();
double number = nf.parse(myString).doubleValue();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
52548 次 |
| 最近记录: |