40

根据 Wolfram Mathematica: cos(50) = 0.6427876096865394

但是这段Java代码:

    System.out.println(Math.cos(50));

给出0.9649660284921133

有什么问题java.lang.Math

4

5 回答 5

100

Math.cos()期望参数以弧度为单位。这将返回您需要的结果:

Math.cos(Math.toRadians(50));
于 2012-10-19T14:01:58.613 回答
13

Math.cos()使用弧度,所以要得到你需要做的预期结果

System.out.println(Math.cos(Math.toRadians(50)));
于 2012-10-19T14:02:30.063 回答
2

度数<>弧度............

于 2012-10-19T14:02:10.467 回答
2

大多数 Java 三角函数期望参数以弧度为单位。您可以使用 Math.toRadians() 进行转换:

System.out.println(Math.cos(Math.toRadians(50)));
于 2012-10-19T14:04:29.627 回答
-2

为了我...

System.out.println(Math.cos(50));
System.out.println(Math.cos(new Double(50)));
System.out.println(Math.cos(Math.toRadians(50)));
System.out.println(Math.cos(Math.toRadians(new Double(50))));

返回

0.9649660284921133
0.9649660284921133
0.6427876096865394
0.6427876096865394



http://www.wolframalpha.com/input/?i=cos%2850deg%29

cos(50deg)给出与 ... 相同的结果,cos(50)因此 Wolfram 默认为度数。

于 2012-10-19T14:53:36.197 回答