Math.cos()给出了错误的结果

时间:2012-10-19 14:00:22

标签: java math cos

根据Wolfram Mathematica的说法: cos(50) = 0.6427876096865394 ;

但这段代码用Java:

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

给出 0.9649660284921133

java.lang.Math有什么问题?

5 个答案:

答案 0 :(得分:97)

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

Math.cos(Math.toRadians(50));

答案 1 :(得分:14)

Math.cos()使用弧度,因此要获得您需要的预期结果

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

答案 2 :(得分:3)

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

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

答案 3 :(得分:2)

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

答案 4 :(得分:-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默认为度。