错误java.lang.NumberFormatException:无效的double:“86,24”

时间:2016-12-06 14:42:37

标签: java android

Android studio noti这个错误。这个代码由一个测验游戏的主屏幕 怎么解决???我尝试了一些指南,但没有 这是我的错误

cron job

我的活动

 E/AndroidRuntime: FATAL EXCEPTION: main
              java.lang.NumberFormatException: Invalid double: "86,24"
                  at java.lang.StringToReal.invalidReal(StringToReal.java:63)
                  at java.lang.StringToReal.parseDouble(StringToReal.java:269)
                  at java.lang.Double.parseDouble(Double.java:295)
                  at gt.scratchgame.MainActivity.checkAns(MainActivity.java:345)
                  at gt.scratchgame.MainActivity.onClick(MainActivity.java:318)
                  at android.view.View.performClick(View.java:4084)
                  at android.view.View$PerformClick.run(View.java:16966)
                  at android.os.Handler.handleCallback(Handler.java:615)
                  at android.os.Handler.dispatchMessage(Handler.java:92)
                  at android.os.Looper.loop(Looper.java:137)
                  at android.app.ActivityThread.main(ActivityThread.java:4745)
                  at java.lang.reflect.Method.invokeNative(Native Method)
                  at java.lang.reflect.Method.invoke(Method.java:511)
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
                  at dalvik.system.NativeStart.main(Native Method)

1 个答案:

答案 0 :(得分:1)

您的问题实际上会带来一个更大的问题,在开发移动应用时尤为重要:Locale。不要使用不考虑Locale的Double.parse(),而应考虑使用NumberFormat

NumberFormat nf = NumberFormat.getInstance(); //gets an instance with the default Locale
Number parsed = nf.parse(percentageView.getText().toString());
beanEachQuetionScore.quetionScore = parsed.doubleValue();

对于您的浮点值,您可以使用相同的概念:

Number parsedFloat = nf.parse(someFloatString);
float floatVal = parsedFloat.floatValue();

这当然假设OP位于使用','的区域设置中。而不是'而不是'作为分隔符。