根据您的区域设置,它是否为有效的双精度数。在US /
ENGLISH语言环境中,
-0.05是有效的双精度数,但在FRENCH语言环境中,则不是(应该是
-0,05逗号)。
您可以通过以下方式查看它的运行情况:
NumberFormat fmt = NumberFormat.getNumberInstance(Locale.US);double d = fmt.parse("-0.05").doublevalue(); //-0.05fmt = NumberFormat.getNumberInstance(Locale.FRENCH);d = fmt.parse("-0.05").doublevalue(); //-0.0d = fmt.parse("-0,05").doublevalue(); //-0.05编辑
但是,您的问题可能不是那样。减号无效。您正在使用
−而不是
-(它们看起来相同,但字符不同)。演示:
Double.parseDouble("-0.05"); //okDouble.parseDouble("−0.05"); //exception


