-2
私はJavaにとって非常に新しいので、私は学校でクラスの二次方程式ソルバーをプログラムするように求められました。私のコードがリモートで正しいのかどうかはわかりませんが、私が入力したものはどれも「NaN」という出力が得られます。二次ソルバー出力を与える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);
}
}
*自分のコードがリモートで正しいのかどうかはわかりません。それでは、なぜあなたはどんな出力に驚くでしょうか?あなたの質問は何ですか? – shmosel
IDEデバッガのコードをステップ実行しましたか?ここで質問する前に少なくともそれを行って、問題がどこにあるのかを少なくとも突き止めることができます。 –
あなたはあなたがJavaを使い慣れていないと言いますが、おそらくあなたは他の言語での経験がありますか? 「力」演算子は、言語ごとに変化する演算子であることに注意してください。いくつかの言語は '^'を使い、いくつかの言語は '**'を使い、Javaは演算子を持たない。 – ajb