我正在为计算二次方程结果的程序进行代码测试
我需要有以下情况的测试数据,当a不为零且d为正时,下面的代码中有两种可能性,我需要找到Math.abs时第一次饱食的例子(b / a - 200.0)< 1.0e-4,我尝试的所有值,执行第二个
caption= "Two roots";
if (Math.abs(b / a - 200.0) < 1.0e-4)
{
System.out.println("first one");
x1 = (-100.0 * (1.0 + Math.sqrt(1.0 - 1.0 / (10000.0 * a))));
x2 = (-100.0 * (1.0 - Math.sqrt(1.0 - 1.0 / (10000.0 * a))));
}
else
{
System.out.println("secrst one");
x1 = (-b - Math.sqrt(d)) / (2.0 * a);
x2 = (-b + Math.sqrt(d)) / (2.0 * a);
}
}
}
答案 0 :(得分:1)
不确定您遇到了什么麻烦。我写道:
public class Quad
{
public static void main(String[] args) {
double a = Double.parseDouble(args[0]);
double b = Double.parseDouble(args[1]);
System.out.println(Math.abs(b/a - 200.0));
if (Math.abs(b/a - 200.0) < 1.0e-4) {
System.out.println("first one");
}
else {
System.out.println("second one");
}
}
}
还有一些输出:
animato:~/src/Java/SO$ java Quad 1 200
0.0
first one
animato:~/src/Java/SO$ java Quad 2 400
0.0
first one
animato:~/src/Java/SO$ java Quad -3 -600
0.0
first one