And*_*oth 2 .net c# floating-point double addition
我正在使用下面的一段代码,并且在一些神秘的情况下,添加的结果并不像它应该的那样:
double _west = 9.482935905456543;
double _off = 0.00000093248155508263153;
double _lon = _west + _off;
// check for the expected result
Debug.Assert(_lon == 9.4829368379380981);
// sometimes i get 9.48293685913086 for _lon (which is wrong)
Run Code Online (Sandbox Code Playgroud)
我在我的应用程序中使用了一些本机DLL,我怀疑某些DLL是造成这种"错误计算"的原因,但我需要弄清楚哪一个.任何人都可以给我一个提示如何找出问题的根源吗?
double不完全准确,请尝试使用十进制
使用double和float over decimal的优点是性能