出于某种原因,我对等式的数学运算并不起作用。这实际上是我的第一个Java程序,所以请轻松一点,不要使用我不理解的概念和内容。
无论我输入什么数字,结果总是说:第一个零:NaN。第二个零:NaN。我没有尝试编写一个处理虚幻数字的程序。我输入的所有数字都是真正的零。
有人可以帮我这个吗?
import java.util.Scanner;
public class Main
{
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
double[] num = new double [3];
double answer1;
double answer2;
System.out.print("Enter A, B, C: ");
for(int i = 0; i < 3; i++){
num[i] = reader.nextDouble();
}
answer2 = (((num[1]*-1.0)-(Math.pow((Math.pow(num[1],2.0)-(num[0]*num[2]*4.0)),0.5)))/(num[0]*2.0));
answer1 = (((num[1]*-1.0)+(Math.pow((Math.pow(num[1],2.0)-(num[0]*num[2]*4.0)),0.5)))/(num[0]*2.0));
System.out.println("The first zero: " + answer1 + ".");
System.out.println("The second zero: " + answer2 + ".");
}
}
答案 0 :(得分:0)
Math.pow(-4.0, 0.5) = Math.sqrt(-4.0) both results in NaN
确保您提供的输入不会给出负值 Math.pow(NUM [1],2.0) - (NUM [0] * NUM [2] * 4.0)
例如,这将返回有效结果 A = 1,B = 100,C = 10
The first zero: -0.10010020050140156.
The second zero: -99.8998997994986.