编写数学方程式
Coding a Math Equation
所以我正在尝试使用 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
您看到 NaN
的两个可能原因。
分母是0
。这仅在 a
设置为 0
或 0.0
时才有可能。我假设情况并非如此。
另一种可能性是您正在计算一个负数的平方根,它(在 java 中)是一个 NaN。有关详细信息,请参阅 Math.sqrt javadoc。
If the argument is NaN or less than zero, then the result is NaN.
所以我正在尝试使用 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
您看到 NaN
的两个可能原因。
分母是0
。这仅在 a
设置为 0
或 0.0
时才有可能。我假设情况并非如此。
另一种可能性是您正在计算一个负数的平方根,它(在 java 中)是一个 NaN。有关详细信息,请参阅 Math.sqrt javadoc。
If the argument is NaN or less than zero, then the result is NaN.