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

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

但是这个Java代码:

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

给出0.9649660284921133

java.lang.Math什么问题?

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

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

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

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

度<>弧度………..

大部分Java三angular函数都希望参数以弧度表示。 你可以使用Math.toRadians()来转换:

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

为了我…

 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(50deg)相同的结果…所以Wolfram是默认的程度。

    Interesting Posts