三角函数计算不起作用

Trigonometric calculation not working

我的计算显示 75 * Cos(90) 为零。但是,我得到 -22.46325...

我可以确认它不是弧度,因为弧度值为 -33.6055...

这是我的:

private static double RadianToDegree(double angle)
{
    return angle * (180.0 / Math.PI);
}

static void Main(string[] args)
{
    Console.WriteLine((75 * Math.Cos(RadianToDegree(90))).ToString());
}

为什么我得到的值是 -22.46325 而不是 0

输入以弧度为单位,因此您需要将度数转换为弧度

您正在向 Math.Cos 传递参数,您的代码建议应该以度为单位,而 Math.Cos 采用弧度。

参见:https://msdn.microsoft.com/en-us/library/system.math.cos%28v=vs.110%29.aspx

Math.Cos 期望输入以弧度为单位,而不是度数:

public static double Cos(double d)

Parameters

d

An angle, measured in radians.

你说

My calculations show 75 * Cos(90) as zero

所以想必你是在攻读学位。

因此您需要使用

private static double DegreeToRadian(double angle)
{
    return angle / (180.0 / Math.PI);
}

而不是

private static double RadianToDegree(double angle)
{
    return angle * (180.0 / Math.PI);
}

按照Math.Cos 的预期将角度转换为弧度。

请参阅 this link 到 ideone.com 片段以确认。

结果是 4.59227382683391E-15 但由于您处理的是浮点数,因此 Math.Cos(x) 的结果 永远不会 为零(参见,例如this Whosebug question).

你得到了反向转换:

private static double DegreesToRadians(double angle)
{

    return angle * (Math.PI / 180.0 );
}

static void Main(string[] args)
{
    Console.WriteLine((75 * Math.Cos(DegreeToRadians(90))).ToString());
}

您的 RadianToDegree 方法给出了 90 returns 的参数 5156.62015617741 的值。传递给 Math.CosMath.Cos 期望以弧度为单位的角度作为参数。 5156.62015617741 度数的弧度为:

5156.62015617741 / PI * 180 = 295452.571501057 = 252.571501057
252.571501057 度的

cos-0.299515394,代码中的乘以 75 给出您看到的 -22.463654606(正负浮点错误) .

正如其他人已经提到的,你的转变是倒退的。