三角函数计算不起作用
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.Cos
。 Math.Cos
期望以弧度为单位的角度作为参数。 5156.62015617741
度数的弧度为:
5156.62015617741 / PI * 180 = 295452.571501057 = 252.571501057
252.571501057
度的 cos
是 -0.299515394
,代码中的乘以 75
给出您看到的 -22.463654606
(正负浮点错误) .
正如其他人已经提到的,你的转变是倒退的。
我的计算显示 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.Cos
。 Math.Cos
期望以弧度为单位的角度作为参数。 5156.62015617741
度数的弧度为:
5156.62015617741 / PI * 180 = 295452.571501057 = 252.571501057
252.571501057
度的 cos
是 -0.299515394
,代码中的乘以 75
给出您看到的 -22.463654606
(正负浮点错误) .
正如其他人已经提到的,你的转变是倒退的。