Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当A>;1._Java_Android_Quadratic - Fatal编程技术网

Java 当A>;1.

Java 当A>;1.,java,android,quadratic,Java,Android,Quadratic,我正在开发我的第一个应用程序,它解决了二次公式,我遇到了一个问题,当foa的值大于1时,该应用程序对根给出了错误的答案。 代码如下: package com.example.firstapp; import java.lang.Math; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.widget.E

我正在开发我的第一个应用程序,它解决了二次公式,我遇到了一个问题,当foa的值大于1时,该应用程序对根给出了错误的答案。 代码如下:

package com.example.firstapp;
import java.lang.Math;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void calculate(View v){
        EditText number1text = (EditText)findViewById(R.id.a);
        EditText number2text = (EditText)findViewById(R.id.b);
        EditText number3text = (EditText)findViewById(R.id.c);
        double num1 = Double.parseDouble(number1text.getText().toString()) , num2 = Double.parseDouble(number2text.getText().toString()), num3 = Double.parseDouble(number3text.getText().toString());
        if ((num2 * num2) - (4*num1*num3) < 0){

        }

        double ans = (double) ((-(num2)- (Math.sqrt(num2 * num2 - (4*num1*num3))))/2*num1);

        double ans2 = (double) (((-(num2)+ Math.sqrt(num2 * num2 - (4*num1*num3))))/2*num1);


        TextView answer = (TextView)findViewById(R.id.ans1);
        answer.setText("The first root is: " + ans);
        TextView answer2 = (TextView)findViewById(R.id.ans2);
        answer2.setText("The second root is: " + ans2);

    }


    private TextView getText(String string) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}
package com.example.firstapp;
导入java.lang.Math;
导入android.os.Bundle;
导入android.app.Activity;
导入android.view.Menu;
导入android.view.view;
导入android.widget.EditText;
导入android.widget.TextView;
公共类MainActivity扩展了活动{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
公共空间计算(视图五){
EditText number1text=(EditText)findViewById(R.id.a);
EditText number2text=(EditText)findViewById(R.id.b);
EditText number3text=(EditText)findViewById(R.id.c);
double num1=double.parseDouble(number1text.getText().toString()),num2=double.parseDouble(number2text.getText().toString()),num3=double.parseDouble(number3text.getText().toString());
如果((num2*num2)-(4*num1*num3)<0){
}
双ans=(双)((((num2)-(数学sqrt)(num2*num2-(4*num1*num3)))/2*num1);
双ans2=(双)(((((num2)+数学sqrt(num2*num2-(4*num1*num3)))/2*num1);
TextView答案=(TextView)findViewById(R.id.ans1);
setText(“第一个根是:“+ans”);
TextView answer2=(TextView)findViewById(R.id.ans2);
answer2.setText(“第二个根是:”+ans2);
}
私有文本视图获取文本(字符串){
//TODO自动生成的方法存根
返回null;
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.main,menu);
返回true;
}
}
任何关于为什么会发生这种情况的帮助都是非常有用的


提前感谢

正确的公式是
-b±sqrt(b^2-4ac)/(2a)

你有
-b±sqrt(b^2-4ac)/2*a


括号会有帮助,即大约2*num1

首先,if语句中没有任何内容。当检查b*b-4ac是否小于零时,应该在else中有计算ans1和ans2的代码。否则,如果行列式小于零,它仍然计算它。而且还有很多不相关的代码,NUM1、NUM2和NUM3不是变量的好名字,考虑把它们改成A、B、C,以符合编写公式的标准方式,每次添加一个特征没有错误,直到程序完成它需要做的每件事。OP还没有处理“无根案例”,这很好,因为他/她还没有完成“a!=1”案例的正确处理。