java - 从我创建的使用公式的方法计算值时遇到问题

标签 java math methods formula

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

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/

相关文章:

java - 如何使用 java servlet 在下拉列表中添加数组值

java - 如何访问在 main 方法中创建的对象

python - 从另一个类添加到 python 中的 for 循环

java - 在 Android Studio 中添加库依赖

java - 如何在运行时用不同数量的 editText 对象填充数组列表?

Java程序以10^-6精度确定嵌套根式常量的值

java - 用一条线连接两个圆

swift - 测量调用方法 "didUpdateValueFor"之间的时间

java - 如何在 "Guess my number "游戏中使用Do While循环?

python - 随机凯莱表的列表索引超出范围