Java 将字符串解析为双精度时发生异常(NumberFormateException)

Java 将字符串解析为双精度时发生异常(NumberFormateException),java,android,Java,Android,我尝试过堆栈溢出的其他解决方案,但没有成功 我试图从EditText获取文本并将其解析为double,但这会导致java.lang.NumberFormatException的错误。请帮忙 这是我的密码: public double func(double x) { String equation = equ.getText().toString(); Double equ = Double.parseDouble(equation); return equ; } 我得

我尝试过堆栈溢出的其他解决方案,但没有成功

我试图从EditText获取文本并将其解析为double,但这会导致java.lang.NumberFormatException的错误。请帮忙

这是我的密码:

public double func(double x) {
    String equation = equ.getText().toString();
    Double equ = Double.parseDouble(equation);
    return equ;
}
我得到的例外是:

11-07 00:32:40.959 25643-25643/com.example.anum.numarics E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.IllegalStateException: Could not execute method for android:onClick
    at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293)
    at android.view.View.performClick(View.java:4212)
    at android.view.View$PerformClick.run(View.java:17476)
    at android.os.Handler.handleCallback(Handler.java:800)
    at android.os.Handler.dispatchMessage(Handler.java:100)
    at android.os.Looper.loop(Looper.java:194)
    at android.app.ActivityThread.main(ActivityThread.java:5392)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:525)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:838)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)
    at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.reflect.InvocationTargetException
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:525)
    at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
    at android.view.View.performClick(View.java:4212) 
    at android.view.View$PerformClick.run(View.java:17476) 
    at android.os.Handler.handleCallback(Handler.java:800) 
    at android.os.Handler.dispatchMessage(Handler.java:100) 
    at android.os.Looper.loop(Looper.java:194) 
    at android.app.ActivityThread.main(ActivityThread.java:5392) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:525) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:838) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605) 
    at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.NumberFormatException: Invalid double: "x*x-2.0"
    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 com.example.anum.numarics.MainActivity$1.func(MainActivity.java:77)
    at com.example.anum.numarics.MainActivity.bisection(MainActivity.java:41)
    at com.example.anum.numarics.MainActivity.calculate(MainActivity.java:81)
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:525) 
    at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) 
    at android.view.View.performClick(View.java:4212) 
    at android.view.View$PerformClick.run(View.java:17476) 
    at android.os.Handler.handleCallback(Handler.java:800) 
    at android.os.Handler.dispatchMessage(Handler.java:100) 
    at android.os.Looper.loop(Looper.java:194) 
    at android.app.ActivityThread.main(ActivityThread.java:5392) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:525) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:838) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605) 
    at dalvik.system.NativeStart.main(Native Method) 

Double.parseDouble
实际上不会为您做任何计算。您正在将
x*x-2.0
作为字符串传入,这显然不是一个数字,并导致了此异常。

很抱歉,但是在
java.lang.NumberFormatException:Invalid double:“x*x-2.0”
?也许您应该重新阅读javadoc:“x-2.0”是我在文本中输入的输入,带有id“eq”@我们不知道,但我们想知道为什么你认为这是一个数字。@Lothar,现在我知道了,并找到了另一种方法:)