两个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个回答

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐