编码数学方程

时间:2016-09-21 22:35:23

标签: java math math-functions

所以我试图用java编写这个等式:

enter image description here

我从用户那里拿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

1 个答案:

答案 0 :(得分:3)

您看到NaN的两个可能原因。

分母是0。仅当a设置为00.0时才可以执行此操作。我会假设情况并非如此。

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

  

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