.Net 的数学库计算精度太差??
在程序中要计算一个 很小的数 的指数,即 Math.Exp(x)
其中 x 非常小。结果发现居然计算出来的结果是错的。
用 vc 2010验证了一下,也是错的。
在 vc6 下面计算,得到了正确的结果。
怎么微软的库的精度越来越差?
有兴趣的同学可以自己试一下。
我要实际计算的公式是 (1- Math.Exp(0-x) ) /x , 在 x趋于0的时候,这个公式的结果应该趋于1,但是始终应该小于1 ,我在C#里面计算,居然出现了大于1的情况,所以开始检查,最终发现是 Math.Exp计算结果精度太差,比windows自己带的计算器还差。
我发现这个问题的时候,使用的x的值是 0.0000000000022861307294881892
请高手验证一下,并求高精度的库函数。
用 vs2010 c#和c++得到的结果都大于1,在vc6下面计算的结果小于1.