所以前几天,Google Play 开发者控制台的“崩溃”部分弹出了以下错误:
java.lang.NumberFormatException: Invalid double: "−0.05"
如果我错了请纠正我,但这实际上是一个有效的替身 - 它在我的计算机、模拟器和我自己的 Android 设备 (Nexus 5) 上被识别为有效的替身
它崩溃的设备是运行 Android 4.3 的 Galaxy Note II - 请知道它为什么会崩溃?
它是或不是有效的 double 取决于您的语言环境。对于 US/ENGLISH 语言环境,-0.05
是有效的 double 值,但对于 FRENCH 语言环境,它不是(它应该是 -0,05
带逗号) .
您可以通过以下方式查看它的运行情况:
NumberFormat fmt = NumberFormat.getNumberInstance(Locale.US);
double d = fmt.parse("-0.05").doubleValue(); //-0.05
fmt = NumberFormat.getNumberInstance(Locale.FRENCH);
d = fmt.parse("-0.05").doubleValue(); //-0.0
d = fmt.parse("-0,05").doubleValue(); //-0.05
编辑
但是您的问题可能不是这样。减号无效。您正在使用 -
而不是 -
(它们看起来相同但字符不同)。演示:
Double.parseDouble("-0.05"); //ok
Double.parseDouble("−0.05"); //exception
我是一名优秀的程序员,十分优秀!