Typecho合集站.  留言 关于 记事本 
首页 > TYPECHO > typecho教程 > typecho插件 > typecho主题 > 网站开发 > PHP > Linux > web > 编程 > 个人收藏 > 互联网旧文 > 互联网趣文

C/C++ 双精度double 数据相加出错缺陷解释

不知道有没有人和我一样遇到过这样一个问题,请看下面代码。

#include
a=,b=,c= (a+b== cout<<<< } cout<<<< }

这段代码在 VS 2012上面执行是  输出 没哦  的,也就是说里面的 2.3+1.9居然不等于4.2。

当时遇到也是百思不等其解

后来断点测试显示,在if处的a和b 的值 居然变了,增加了小数点后7~8位

最后得出的结果是,语言本身的误差,并非代码错误!

解决方法是 加入 fabs函数,就可以了,0.0001是误差的范围,可以自己斟酌定义。最好用系统的 DBL_MIN,这个是最小的

#include
a=,c= (fabs((a+b)-)< cout<<<< } cout<<<< }

总结

以上是Typecho合集站为你收集整理的C/C++ 双精度double 数据相加出错缺陷解释全部内容,希望文章能够帮你解决C/C++ 双精度double 数据相加出错缺陷解释所遇到的程序开发问题。

如果觉得Typecho合集站网站内容还不错,欢迎将Typecho合集站网站推荐给程序员好友。


发表新评论


本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除
Theme by
夏目贵志, Powered by Typecho | RSS | sitemap