我正在尝试在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);
有没有办法输出带小数的原始值?
答案 0 :(得分:1)
您可以通过创建if语句来检查这一点,该语句检查判别式是否大于0。
if(((b*b)-4*a*c) < 0){
System.out.println("No real answers");
}
这可以消除你遇到的任何问题。