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

我正在尝试将角度的正弦从弧度转换为度数,但我不断得到不准确的数字。我的代码如下所示:


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(),还是需要执行额外的步骤才能获得准确的结果?


慕尼黑5688855
浏览 199回答 3
3回答

慕尼黑8549860

似乎找到准确测量值的最简单方法是简单地将初始度数测量值乘以 Math.PI/180,然后使用该数字进行计算。从那里, Math.sin(launchAngle) 将给出干净、可行的结果。

慕姐8265434

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

HUH函数

sine 函数返回单位圆上一点的 y 坐标。对于Math.sin,您以弧度输入一个角度,它返回相应的 y 坐标。但是,您在这里所做的是使用Math.sin(y 坐标,而不是角度)的结果作为 的参数Math.toDegrees,它应该将弧度转换为度数。我认为目的是找到launchAngle. 如果是,转Math.toDegrees(Math.sin(launchAngle))进入Math.sin(Math.toRadians(launchAngle))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java