Java 给出输出NaN的二次解算器

Java 给出输出NaN的二次解算器,java,quadratic,Java,Quadratic,我对java非常陌生,我被要求为学校的一个班级编写一个二次方程求解器。我不确定我的代码是否完全正确,但无论我给出什么输入,我都会得到输出“NaN” import javax.swing.JOptionPane; import static java.lang.Math.sqrt; public class FunTest { public static void main(String[] args) { String number1=JOptionPane.sho

我对java非常陌生,我被要求为学校的一个班级编写一个二次方程求解器。我不确定我的代码是否完全正确,但无论我给出什么输入,我都会得到输出“NaN”

import javax.swing.JOptionPane;
import static java.lang.Math.sqrt;

public class FunTest
{
    public static void main(String[] args)
    {
      String number1=JOptionPane.showInputDialog("Enter A");
      int a=Integer.parseInt(number1);

      String number2=JOptionPane.showInputDialog("Enter B.");
      int b=Integer.parseInt(number2);

      String number3=JOptionPane.showInputDialog("Enter C.");
      int c=Integer.parseInt(number3);

      double discriminantsquared=((b^2)-(4*a*c));
      double discriminant=Math.sqrt(discriminantsquared);

      double x1=(((b*-1)+discriminant)/(2*a));
      double x2=(((b*-1)-discriminant)/(2*a));

      String output=("x1= "+x1+"\n"+"x2= "+x2);
      JOptionPane.showMessageDialog(null, output);
    }
}

b^2
不是“二的幂b”,而是“二的b”。对于您可以使用的电源,或者干脆
b*b

我甚至不确定我的代码是否完全正确。那么,为什么您会对任何输出感到惊讶呢?你的问题到底是什么?你有没有在你的IDE调试器中仔细检查过代码?在这里询问之前,请至少这样做,这样您至少可以指出问题所在。您说您是Java新手,但可能您有其他语言的经验?请注意,“power”操作符是一种随语言变化的操作符。有些语言使用
^
,有些语言使用
***
,Java没有操作符。一旦你修复了@Murelnik发现的明显错误,你仍然需要添加一些代码来处理没有根的二次函数(即
discriminantsquared<0
),b*b在各个方面都是优越的,但出于这个原因,它是一个好地方。