C# Math.Cos(double) 返回错误的值

12

我在C#中有这个:

double Cos = Math.Cos(32.471192290848492); //Equals 0.49299653250335213

但是当我在计算器上这样做时,我得到了这个结果

(0.84366148773210745476752872050588)

为什么它返回了错误的值?


1
这是一个重复的问题,链接为https://dev59.com/CknSa4cB1Zd3GeqPQ8rJ。也许应该将它们合并,并扩展问题和答案以涵盖所有主要三角函数操作,以避免未来的重复。 - dodexahedron
可能是C# - 为什么 Math.Atan(1) 不接近于 45 度的重复问题。 - user8259632
3个回答

20

Math.Cos期望的是“以弧度为单位”的角度。我猜测你的计算器是使用角度而不是弧度。

通过将角度值转换为弧度,您应该能够获得相同的答案:

double angleInDegrees = 32.471192290848492;
double cos = Math.Cos(angleInDegrees * (Math.PI / 180.0));

似乎不起作用。 在C#中我得到了0.49。 而在Windows计算器中我得到了0.84。 - Matt
@Matt 再试一次,这是问题所在(Reed 的代码是有效的)。 - dlev

6

你可能把角度和弧度混淆了。大多数计算器使用角度,而大多数编程语言则使用弧度。


4
因为Math.Cos使用的是弧度制而你的计算器使用的是角度制

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接