[英]quadratic formula java NaN?
我必須要做二次方程式。 當我生成文件時,它沒有錯誤,但是當我運行項目時,輸出是Nan。 我知道那不是“數字”,但我不知道如何解決。
import java.io.*;
class cuadratica
{
public static void main(String [] args) throws IOException
{
cuadra obj=new cuadra();
System.out.println("5. Calcular la ecuación cuadrática (ax^2 + bx + c) ");
obj.cal();
}
}
class cuadra
{
void cal() throws IOException
{
String x;
int a;
String w;
int b;
String t;
int c;
int g;
int f;
double num3;
double num2;
double q;
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
System.out.println("Inserte el primero numero (ax^2)" );
x=br.readLine();
a=Integer.parseInt(x);
System.out.println("Inserte el segundo numero (bx)");
w=br.readLine();
b=Integer.parseInt(w);
System.out.println("Inserte el tercer numero (c)");
t=br.readLine();
c=Integer.parseInt(t);
g=(b*b)-(4*a*c);
q=Math.sqrt(g);
if (a!=0||g>0)
{
num2 = (-b+q)/(2*a);
num3 = (-b-q)/(2*a);
System.out.println("La raiz son "+num2+" y "+num3);
}
else
{
System.out.println("error");
}
}
}
用實系數求解二次方程ax^2 + bx + c = 0
時,方程的根將屬於以下類別之一:
我已經嘗試過您的程序,它為a = 1, b = 2, c = 1
提供了正確的解決方案,但是對於a = 1, b = 1, c = 1
提供a = 1, b = 1, c = 1
NaN
。 為了解決您的邏輯錯誤,您必須先b^2 - 4ac
判別式 b^2 - 4ac
(代碼中的變量g
) 為非負值,然后再求平方根(判別式為負數時,它對應於上面的情況3) 。 否則,當取負數的平方根時會得到NaN
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.