0

所以我试图用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

4

1 回答 1

3

您看到NaN.

分母是0。这只有在a设置为0或时才有可能0.0。我会假设情况并非如此。

另一种可能性是你正在执行一个负数的平方根,它(在java中)是一个NaN。有关详细信息,请参阅Math.sqrt javadoc 。

如果参数为 NaN 或小于零,则结果为 NaN。

于 2016-09-21T22:44:29.320 回答