CLR中的内部三角函数的不准确性让我非常恼火。众所周知,C#中Math.Sin()和Math.Cos()的准确性
Math.Sin(Math.PI)=0.00000000000000012246063538223773
而不是0.类似的情况发生在Math.Cos(Math.PI/2)
。
但是当我做了一长串的计算方法,在特殊的情况评估为
Math.Sin(Math.PI/2+x)-Math.Cos(x)
的,结果是零为X = 0.2,但对于x = 0.1不为零(尝试)。另一个问题是,当争论的数量很大时,不准确度会相应增大。
所以我想知道是否有人编写了一些更好的C#中的trig函数代表与世界共享。 CLR是否调用一些实现CORDIC或类似的标准C数学库?链接:wikipedia CORDIC
你认为pi的表现是多么准确? – 2010-07-14 19:31:08
如果你想要象征性的数学,做符号数学。如果你使用浮点类型,你会得到有限的精度。 – AakashM 2010-07-14 19:45:44
-1对于不“做家庭作业”,也认为'System.Math'是C#的一部分(提示:它是C#的一部分。NET框架)。 – 2010-07-14 19:49:52