采用double型数据来计算测量数据,有时似乎精度不够,必须采用decimal,
关于c#进行测绘计算时的问题
1、进行减法运算时,精度不够。例如:
double a1 = 648838.95;
double a2 = 648000.0;
double a3 = a1 - a2;
a3结果理论应该为:838.95,而实际c#返回值为838.94999999995343
产生这个问题的原因是double数据类型精度(15~16位)没有我们想象的那样高,产生了舍入误差,
这时可以采取的解决方法是采用更高精度的数据类型:decimal(精度28位)
decimal b1 = 648838.95m;
decimal b2 = 648000.0m;
decimal b3 = b1 - b2;
这时b3即为838.95
date:2010-12-3 by zzh_my@163.com