如何计算Java中double的正弦和余弦?

时间:2018-11-01 01:20:10

标签: java double sin degrees

我正在尝试将弧度的正弦值从弧度转换为度数,并且我不断得到不正确的数字。我的代码如下:

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()函数将弧度转换为度数时,尽管使用计算器执行相同的计算得出的数字为0.86602540378,但它却给出了-17.464362139918286。我是不正确地使用Math.toDegrees(),还是需要执行额外的步骤才能获得准确的结果?

3 个答案:

答案 0 :(得分:0)

for i in range(len(st)): total = total + st[i] + "**" 仅接受弧度作为输入。您似乎正试图找到Math.sin()的罪恶,以度为单位。

launchAngle

答案 1 :(得分:0)

正弦函数返回单位圆上点的y坐标。对于Math.sin,输入一个以弧度为单位的角度,它返回相应的y坐标。但是,您在此处使用Math.sin的结果(y坐标,而不是角度)作为Math.toDegrees的参数,该结果应将弧度转换为度。我以为是要找到launchAngle的罪过。如果是这样,请

Math.toDegrees(Math.sin(launchAngle))

进入

Math.sin(Math.toRadians(launchAngle))

答案 2 :(得分:0)

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

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