有一个问题是从我创建的使用公式的方法计算值

时间:2016-10-04 02:37:30

标签: java math methods formula

我正在创建一个类,我正在尝试创建一个将时间作为参数的方法,并使用此公式来查找某些内容的距离:

d(t) = vt cosθ

其中d(t)是距离,v是速度,t是时间,θ是以度为单位的角度。

这是我用Java编写的,然后我测试了它但没有得到正确的结果。

如果我用这些值计算距离:velocity = 21 time = 43 angle = 62我得到423.93的结果,但是如果我把它放在我的测试类中并使用该方法(并输入相同的值)我得到487.89。

我做错了什么?为什么我得到这个值?

方法:

public double getDistance(double time) {
    double vt = velocity * time;
    angle = (int) Math.toRadians(angle);
    double cosineCalc =  Math.cos(angle);
    double distance = vt * cosineCalc;
    return distance;

Tester类实现:

Projectile testOne = new Projectile(21, 62);
double actual = testOne.getDistance(43);

2 个答案:

答案 0 :(得分:2)

问题是(int) Math.toRadians(angle)失去了精度并最终将其四舍五入为整数。要使其有效,请确保将angle保留为double,然后移除(int)广告。

答案 1 :(得分:0)

angle = (int) Math.toRadians(angle);

删除(int)转换,它应该可以工作。