测试二次方程

时间:2012-04-01 23:24:25

标签: java math testing

我正在为计算二次方程结果的程序进行代码测试

我需要有以下情况的测试数据,当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);
                }
            }
        }                            

1 个答案:

答案 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