本文介绍了双重计算问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
您好,在我的C ++代码中,我有2个双变量,其值分别为.4和.1
当我从.4中减去.1时,我得到的值是.30000000004.请问为什么编译器给出了这样的值以及如何解决这个问题.
例如代码
double d = .4; double dec = .1 double result = d- dec;
因此,当我从.1中减去.1时,我得到的是.00000000027而不是zeo.它们存储在二进制文件中.这意味着以10为底的精确数字在以2为底的数字中不是那么精确:
在此处 [ ^ ]比我能更好地解释它:请参阅将小数转换为二进制实数"下的一半内容
Hi in my C++ code I have 2 double variables with value .4 and .1
When I subtract .1 from .4 the value I am getting is .30000000004 .May I know why the compiler is giving such a value and how can I solve the issue.
eg code
double d = .4; double dec = .1 double result = d- dec;
due to this when I subtract .1 from .1 I am getting .00000000027 instead of zeo.
解决方案
这篇关于双重计算问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!