C/C++ 双精度double 数据相加出错缺陷解释
发布时间:2020-12-15 04:43:35 所属栏目:百科 来源:网络整理
导读:不知道有没有人和我一样遇到过这样一个问题,请看下面代码。 #include a= ,b= ,c= (a+b== cout } cout } 这段代码在 VS 2012上面执行是? 输出 没哦? 的,也就是说里面的 2.3+1.9居然不等于4.2。 当时遇到也是百思不等其解 后来断点测试显示,在if处的a和b 的
不知道有没有人和我一样遇到过这样一个问题,请看下面代码。 #include
这段代码在 VS 2012上面执行是? 输出 没哦? 的,也就是说里面的 2.3+1.9居然不等于4.2。 当时遇到也是百思不等其解 后来断点测试显示,在if处的a和b 的值 居然变了,增加了小数点后7~8位 最后得出的结果是,语言本身的误差,并非代码错误! 解决方法是 加入 fabs函数,就可以了,0.0001是误差的范围,可以自己斟酌定义。最好用系统的 DBL_MIN,这个是最小的 #include (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |