Java 二次公式?
我必须做一个二次公式。当我构建文件时,它没有错误,但是当我运行项目时,输出是Nan。我知道这不是一个数字,但我不知道如何解决它Java 二次公式?,java,jcreator,Java,Jcreator,我必须做一个二次公式。当我构建文件时,它没有错误,但是当我运行项目时,输出是Nan。我知道这不是一个数字,但我不知道如何解决它 import java.io.*; class cuadratica { public static void main(String [] args) throws IOException { cuadra obj=new cuadra(); System.out.println("5. Calcular la ec
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
的情况下给出了NaN
。为了修复逻辑错误,必须先检查判别式b^2-4ac
(代码中的变量g
)是否为非负,然后再求平方根(当判别式为负时,它对应于上述情况3)。否则,当取负数的平方根时,您将得到NaN
。搜索Scanner
类。是的,您是对的,我删除了q=Math.sqrt(g);并添加公式部分y更改:如果(a!=0 | | g>0)为(a!=0&&g>0),则现在项目运行