【问题标题】:Cannot parse a String into Float in my app [duplicate]无法在我的应用程序中将字符串解析为浮点数 [重复]
【发布时间】:2017-11-25 13:48:43
【问题描述】:

起初我是 android 开发的新手。我试图制作这个小应用程序,我想从用户那里获取输入并将它们显示到(默认)列表视图中。当我在所有字段中输入值时,它工作正常,除非我将 CGPA 字段保持为空,否则它会停止。不幸的是,MyApp 已停止

Here is the OnClickListener login button.


        login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                setData();
            }
        });

这是我猜问题发生的 setData() 方法的行。 我的问题是“这是解析数据的正确方法吗?”

Float cgpa = Float.parseFloat(editTextCgpa.getText().toString());
 if(cgpa<=4.00 && cgpa > 0.00 ){
                student.setCgpa(cgpa);
            }
            else{
                error = true;
                editTextCgpa.setError("CGPA must be within 4 in scale");
            }

Android 监视器:

这是我在 android 监视器中发现的错误消息。

11-25 13:06:18.917 7896-7896/com.ariful.lict.lictpractice E/AndroidRuntime: FATAL EXCEPTION: main
                                                                        java.lang.NumberFormatException: Invalid float: ""
                                                                            at java.lang.StringToReal.invalidReal(StringToReal.java:63)
                                                                            at java.lang.StringToReal.parseFloat(StringToReal.java:289)
                                                                            at java.lang.Float.parseFloat(Float.java:300)
                                                                            at com.ariful.lict.lictpractice.MainActivity.setData(MainActivity.java:55)
                                                                            at com.ariful.lict.lictpractice.MainActivity$1.onClick(MainActivity.java:45)
                                                                            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)

String 到 Float 的转换是否会导致错误? 有没有人可以帮助我?

【问题讨论】:

    标签: java android floating-point numberformatexception


    【解决方案1】:

    您正在传递一个要解析的空字符串...

    只需更改您的代码以检查空/空String

    if(!editTextCgpa.getText().toString().isEmpty()){
    Float cgpa = Float.parseFloat(editTextCgpa.getText().toString());
     if(cgpa<=4.00 && cgpa > 0.00 ){
                    student.setCgpa(cgpa);
                }
                else{
                    error = true;
                    editTextCgpa.setError("CGPA must be within 4 in scale");
                }
    }
    

    【讨论】:

    • 非常感谢它工作正常。我想我得到了 NullpointerException :p
    • 没问题;如果这对您有帮助,您可以通过将其标记为已接受的答案来提供帮助:)
    猜你喜欢
    • 2021-06-30
    • 2020-08-30
    • 2020-02-22
    • 1970-01-01
    • 1970-01-01
    • 2017-09-30
    • 1970-01-01
    • 2021-03-21
    • 2019-07-09
    相关资源
    最近更新 更多