System.out.println(etInput.getText().toString());
float myWeight = Float.valueOf(etInput.getText().toString());
你好
第二行是要在float中转换一个String值(这是一个String,因为我可以在控制台中打印它),但是我得到了NumberFormatException ...
关于如何发生的一些想法?
堆:
08-22 15:03:38.521: E/AndroidRuntime(15341): FATAL EXCEPTION: main
08-22 15:03:38.521: E/AndroidRuntime(15341): java.lang.NumberFormatException:
08-22 15:03:38.521: E/AndroidRuntime(15341): at org.apache.harmony.luni.util.FloatingPointParser.parseFloat(FloatingPointParser.java:305)
08-22 15:03:38.521: E/AndroidRuntime(15341): at java.lang.Float.parseFloat(Float.java:323)
08-22 15:03:38.521: E/AndroidRuntime(15341): at java.lang.Float.valueOf(Float.java:362)
08-22 15:03:38.521: E/AndroidRuntime(15341): at com.mikele.dietmonitor.activity.MainActivity$2.onClick(MainActivity.java:120)
08-22 15:03:38.521: E/AndroidRuntime(15341): at android.view.View.performClick(View.java:2538)
08-22 15:03:38.521: E/AndroidRuntime(15341): at android.view.View$PerformClick.run(View.java:9152)
08-22 15:03:38.521: E/AndroidRuntime(15341): at android.os.Handler.handleCallback(Handler.java:587)
08-22 15:03:38.521: E/AndroidRuntime(15341): at android.os.Handler.dispatchMessage(Handler.java:92)
08-22 15:03:38.521: E/AndroidRuntime(15341): at android.os.Looper.loop(Looper.java:130)
08-22 15:03:38.521: E/AndroidRuntime(15341): at android.app.ActivityThread.main(ActivityThread.java:3691)
08-22 15:03:38.521: E/AndroidRuntime(15341): at java.lang.reflect.Method.invokeNative(Native Method)
08-22 15:03:38.521: E/AndroidRuntime(15341): at java.lang.reflect.Method.invoke(Method.java:507)
08-22 15:03:38.521: E/AndroidRuntime(15341): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907)
08-22 15:03:38.521: E/AndroidRuntime(15341): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665)
08-22 15:03:38.521: E/AndroidRuntime(15341): at dalvik.system.NativeStart.main(Native Method)
最佳答案
方法Float.valueOf
的输入必须是有效的浮点数。因此,请确保etInput.getText().toString()
返回一个字符串,其中包含有效的浮点数,即仅数字和最多一个小数点。一个普遍的问题是尾随空格,因此请在etInput.getText().toString().trim()
上调用trim以避免任何错误。
关于java - valueOf抛出NumberFormatException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18381339/