2 yinqizhuan910 yinqizhuan910 于 2014.11.12 09:38 提问

两个double型变量相乘 在VC中结果不正确

各位大侠,在VC2010中遇到以下问题,如能解决,必重谢。

两个double型变量相乘,如3.0*0.00095673,应该为0.00287019,但是在VC中这个值是0.002870189999999999,这样的话我们后面有一步需要进行(int)(3.0*0.00095673/0.00095673),真实结果应该为3,但是在VC中这个值却是2,这在我们程序中就会带来一定的计算误差。

现在想知道这样的计算误差能不能通过什么方式处理掉呢?

由于我们在计算过程中有可能会出现(int)(2.999999)=2这样的情况,因此向上取整也可能不是很合适。

1个回答

yinhening
yinhening   2014.11.12 10:01

不能,浮点数本身就有误差。
计算不要用double,用decimal

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!