2017-08-31 46 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的新手,但也許你有其他語言的經驗?請注意,「power」操作符是一種從語言到語言的變化。一些語言使用'^',一些語言使用'**',Java沒有運算符。 – ajb

回答

4

b^2不是 「b鍵的二的乘方」,它是 「B xored與2」。對於電力,您可以使用Math.pow(b, 2),或者簡單地使用b * b

+4

b * b在各方面都優越,但是對於原因。 – Bathsheba