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

Java Math.cos()给出了错误的结果,java,math,trigonometry,Java,Math,Trigonometry,根据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)); 度弧度……….使用弧度,因此要获得预期结果,您需要执行以下操作 System

根据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));
度弧度……….

使用弧度,因此要获得预期结果,您需要执行以下操作

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

大多数Java三角函数都希望参数以弧度为单位。可以使用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




cos(50度)
给出与
cos(50度)
相同的结果。。。所以Wolfram默认为度。

+1。仅供参考,正如OP所说的wolfram,Java中是否有一个版本的Math.cos()可以处理度,或者我们是否经常需要记住手动将度转换为弧度?wolfram Alpha默认情况下不使用度!相反,它试图变得聪明。什么是Wolfram Alpha默认值、度数或弧度或?还有别的基地吗?你能就你写的东西多说几句吗?你的评论实际上没有提供任何信息!我的回答没有回答最初的问题,所以可以使用“-1”标志,但我认为它提供了有关此对话的更多有用信息。Wolfram Alpha尝试猜测您的输入是以弧度还是以度为单位:如果值小于5,它似乎将其解释为弧度,如果值大于或等于5,则将其解释为度;)我冒昧地纠正了Java在执行该代码时实际产生的输出。我的
-1
主要是因为:
我不知道这些结果的确切含义,但对我来说…
,除了它不是问题的正确答案之外。给定代码,您似乎试图猜测发生了什么,而不是理解它。这可以通过以下内容进一步证明:
Math.cos(Math.toDegrees(50))
你输入一个函数,该函数期望弧度值,即你将50弧度转换为度后得到的值,一个完全随机的值。我同意你的看法。。。我认为按一定程度提供期望弧度的方法是错误的。正如我所说,我同意那些给出-1并给出相关信息的人:我希望给出-1不会这么容易。所以谢谢你的解释,@phantum。我会更正我的答案。这个答案是什么意思?度等于弧度。。。但是
1度=0.0174532925弧度
@Manu您评论中的
但是
部分是它们不相等的原因;)这就像说公斤和石头是等价的。当然,它们测量的数量相同,但方式不同。