2017-08-31 1 views
-2

Je suis extrêmement novice en Java et on m'a demandé de programmer un solveur d'équations quadratiques pour une classe à l'école. Je ne suis pas sûr si mon code est même à distance correct, mais j'obtiens la sortie "NaN" pour n'importe quelle entrée que je donne.Solveur quadratique donnant une sortie 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

* Je ne suis pas sûr que mon code soit correct à distance *. Alors pourquoi seriez-vous surpris par une sortie? Et quelle est votre question exactement? – shmosel

+0

Avez-vous parcouru le code dans votre débogueur IDE? S'il vous plaît faites au moins cela avant de demander ici afin que vous puissiez au moins localiser le problème. –

+1

Vous dites que vous êtes novice en Java, mais peut-être avez-vous déjà travaillé dans d'autres langues? Sachez que l'opérateur "power" est celui qui change de langue en langue. Certaines langues utilisent '^', certaines langues utilisent '**' et Java n'a pas d'opérateur. – ajb

Répondre

4

b^2 est pas "b à la puissance de deux", il est "b xored avec 2". Pour le pouvoir, vous pouvez utiliser Math.pow(b, 2), ou simplement b * b.

+4

b * b est supérieur à tous égards, mais un bon endroit pour le raison. – Bathsheba