Android Studio二次方程NaN

时间:2014-12-12 02:15:57

标签: java

我正在尝试在android上制作二次方程求解器。我有一个基本的设置工作,但除非我输入一个完美的二次方法,它将输出NaN。

TextView answerField1 = (TextView) findViewById(R.id.answer1);
TextView answerField2 = (TextView) findViewById(R.id.answer2);
EditText fieldA = (EditText) findViewById(R.id.aTextField);
EditText fieldB = (EditText) findViewById(R.id.bTextField);
EditText fieldC = (EditText) findViewById(R.id.cTextField);
Double aString = Double.parseDouble(fieldA.getText().toString());
Double bString = Double.parseDouble(fieldB.getText().toString());
Double cString = Double.parseDouble(fieldC.getText().toString());
Double answer1 = ((-1 * bString) + Math.sqrt(((bString * bString) - (4 * aString * cString))))/(2 * aString);
Double answer2 = ((-1 * bString) - Math.sqrt(((bString * bString) - (4 * aString * cString))))/(2 * aString);
answerField1.setText("" + answer1);
answerField2.setText("" + answer2);

有没有办法输出带小数的原始值?

1 个答案:

答案 0 :(得分:1)

您可以通过创建if语句来检查这一点,该语句检查判别式是否大于0。

if(((b*b)-4*a*c) < 0){
        System.out.println("No real answers");

    }

这可以消除你遇到的任何问题。