我正在尝试为该tan功能找到正确的域名,我知道
tan x = sinx / cos x
Run Code Online (Sandbox Code Playgroud)
并且tan未定义时cos x = 0.所以
我想检查是否cos x 为0.
if ( Math.Cos(x).Equals(0) )
{
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
但这绝不是真的,因为Math.Cos返回6.123....E-17
如何检查cos == 0?
Jon*_*eet 11
你需要稍微扩大你的期望 - 为了Math.Cos(x)真正等于0,你要么需要不准确Cos(当然会发生这种情况),要么x就是要有不合理的价值.
相反,你应该制定出一些公差-一些范围值的Math.Cos这是非常接近为0.例如:
if (Math.Abs(Math.Cos(x)) < 1e-15)
Run Code Online (Sandbox Code Playgroud)
这1e-15几乎是任意选择的 - 你应该找出你希望它为你的特定任务做什么.(tan当然,这仍然会给出相当大的价值......)