为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Java 中计算双精度的正弦和余弦?

如何在 Java 中计算双精度的正弦和余弦?

慕尼黑5688855 2021-12-22 16:08:07
我正在尝试将角度的正弦从弧度转换为度数,但我不断得到不准确的数字。我的代码如下所示:public class PhysicsSolverAttempt2 {    public static void main(String[] args) {        double[] numbers = {60, 30, 0};        double launchAngle = Double.parseDouble(numbers[0]);        double iV = Double.parseDouble(numbers[1]);        System.out.println(launchAngle);        double iVV = iV * Math.toDegrees(Math.sin(launchAngle));        System.out.println(Math.toDegrees(Math.sin(launchAngle)));    }}当我使用 Math.sin(launchAngle) 时,它给了我一个完美的弧度输出。但是,当我最后使用 Math.toDegrees() 函数将弧度转换为度数时,它给了我 -17.464362139918286,尽管使用计算器执行相同的计算会产生数字 0.86602540378。我是否错误地使用了 Math.toDegrees(),还是需要执行额外的步骤才能获得准确的结果?
查看完整描述

3 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

似乎找到准确测量值的最简单方法是简单地将初始度数测量值乘以 Math.PI/180,然后使用该数字进行计算。

从那里, Math.sin(launchAngle) 将给出干净、可行的结果。


查看完整回答
反对 回复 2021-12-22
?
慕姐8265434

TA贡献1813条经验 获得超2个赞

Math.sin()只接受弧度作为输入。看来您试图找到launchAngle以度为单位的的罪过。

Math.toDegrees(Math.sin(Math.toRadians(launchAngle)));


查看完整回答
反对 回复 2021-12-22
?
HUH函数

TA贡献1836条经验 获得超4个赞

sine 函数返回单位圆上一点的 y 坐标。对于Math.sin,您以弧度输入一个角度,它返回相应的 y 坐标。但是,您在这里所做的是使用Math.sin(y 坐标,而不是角度)的结果作为 的参数Math.toDegrees,它应该将弧度转换为度数。我认为目的是找到launchAngle. 如果是,转

Math.toDegrees(Math.sin(launchAngle))

进入

Math.sin(Math.toRadians(launchAngle))


查看完整回答
反对 回复 2021-12-22
  • 3 回答
  • 0 关注
  • 198 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信