代码之家  ›  专栏  ›  技术社区  ›  Michael K.

如何以java度求反余弦

  •  -3
  • Michael K.  · 技术社区  · 6 年前

    我试图制作一个包罗万象的计算器,但我遇到了一个问题。当我试图用余弦定律找到丢失的角度时,我得到的答案与我的计算器不一样。

    double answer = 0;
    else if (solver == 2 && choice == 2)
        {
            System.out.println("Enter side length opposite of wanted angle: ");
            double c = in.nextDouble();
            System.out.println("Enter known side #2: ");
            double b = in.nextDouble();
            System.out.println("Enter known side #3: ");
            double a = in.nextDouble();
    
            answer = (Math.pow(c, 2) - Math.pow(b,2) - Math.pow(a,2)) /  (-2 *         (a * b));
            answer = Math.acos(answer);
            System.out.println("Answer: " + answer);
        }
    

    如果没有“答案=数学acos(答案);”,在最后一步之前,我得到了正确的答案,但接下来我需要这个答案的反余弦。我没有得到正确的答案。有人知道为什么吗?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Alex    6 年前

    这给了我正确的输出,注意数学的加法。toDegrees():

            double answer = (Math.pow(c, 2) - Math.pow(b,2) - Math.pow(a,2)) / (-2 * (a * b));
            answer = Math.acos(answer);
            System.out.println("Answer: " + Math.toDegrees(answer));