2017-08-31 20 views
-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); 
    } 
} 
+1

*自分のコードがリモートで正しいのかどうかはわかりません。それでは、なぜあなたはどんな出力に驚くでしょうか?あなたの質問は何ですか? – shmosel

+0

IDEデバッガのコードをステップ実行しましたか?ここで質問する前に少なくともそれを行って、問題がどこにあるのかを少なくとも突き止めることができます。 –

+1

あなたはあなたがJavaを使い慣れていないと言いますが、おそらくあなたは他の言語での経験がありますか? 「力」演算子は、言語ごとに変化する演算子であることに注意してください。いくつかの言語は '^'を使い、いくつかの言語は '**'を使い、Javaは演算子を持たない。 – ajb

答えて

4

b^2 "とは、2つの電源にB" は、 "B 2とxored" ではありません。電源の場合はMath.pow(b, 2)、または単にb * bを使用できます。

+4

b * bはあらゆる点で優れていますが、理由。 – Bathsheba

関連する問題