我正在创建一个类,我正在尝试创建一个以时间作为参数的方法,并使用此公式来查找某物的距离:
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;
测试器类实现:
Projectile testOne = new Projectile(21, 62);
double actual = testOne.getDistance(43);
最佳答案
问题在于 (int) Math.toRadians(angle)
会丢失精度并最终将其四舍五入为整数。要使其正常工作,请确保将 angle
保留为 double
并删除 (int)
转换。
关于java - 从我创建的使用公式的方法计算值时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39843329/