Java 从I';我创建了一个使用公式的

Java 从I';我创建了一个使用公式的,java,math,methods,formula,Java,Math,Methods,Formula,我正在创建一个类,我正在尝试创建一个方法,该方法将时间作为一个参数,并使用以下公式来计算某物的距离: d(t) = vt cosθ 其中d(t)是距离,v是速度,t是时间,θ是角度,单位为度 这是我用Java编写的,然后我测试了它,但没有得到正确的结果 如果我用这些值来计算距离:速度=21时间=43角度=62,我得到的结果是423.93,但如果我把它放在我的测试类中,使用这个方法(并输入相同的值),我得到的结果是487.89 我做错了什么?为什么我会得到这个值 方法: public doubl

我正在创建一个类,我正在尝试创建一个方法,该方法将时间作为一个参数,并使用以下公式来计算某物的距离:

d(t) = vt cosθ
其中d(t)是距离,v是速度,t是时间,θ是角度,单位为度

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

如果我用这些值来计算距离:速度=21时间=43角度=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);
问题是
(int)Math.toRadians(angle)
失去了精度,最终将其舍入为整数。要使其正常工作,请确保
角度
保持为
双精度
,并删除
(int)
强制转换。

问题在于
(int)数学。toRadians(angle)
失去精度,最终将其舍入为整数。要使其工作,请确保
角度
保持为
双精度
,并移除
(int)
投射

angle = (int) Math.toRadians(angle);
移除(int)铸件,它应该可以工作


移除(int)铸造,它应该可以工作。

妈的,你说得对。。。现在我只需要问我的教授,为什么他让我把角度作为一个整数。。。谢谢你的回答,虽然你是对的。。。现在我只需要问我的教授,为什么他让我把角度作为一个整数。。。谢谢你的回答