所以我试图用java编写这个等式:
我从用户那里拿a,b和c。 这是我到目前为止的代码:
import java.util.Scanner;
class QaudraticFunction{
public static void main(String []args){
Scanner input = new Scanner(System.in);
System.out.println("Enter a: ");
double a = input.nextDouble();
System.out.println("Enter b: ");
double b = input.nextDouble();
System.out.println("Enter c: ");
double c = input.nextDouble();
double val1 = (Math.pow(b,2.0)) - (4.0*a*c);
double discriminant = Math.sqrt(val1);
double val2 = (-b)-(discriminant);
double r2 = val2/(2.0*a);
System.out.println("r2 = " + r2);
}
}
我认为我的问题是一个逻辑错误,因为程序编译并正确运行。当我输入a,b和c的值时。我得到r2 = NaN
答案 0 :(得分:3)
您看到NaN
的两个可能原因。
分母是0
。仅当a
设置为0
或0.0
时才可以执行此操作。我会假设情况并非如此。
另一种可能性是你正在执行负数的平方根,(在java中)是NaN。有关详细信息,请参阅Math.sqrt javadoc。
如果参数为NaN或小于零,则结果为NaN。