栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言浮点型精度缺失解决(以0来解决)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言浮点型精度缺失解决(以0来解决)

在刷C语言作业的时候
做经典题目判断求解二元一次方程的根,
其中在判断Δ的时候我是直接使用 if Δ<0
但是答案则是 Δ<1e-6 我后来查阅文章才知道,其实在C语言中浮点型是有误差的,会导致结果不一样,比如我们不可以直接把两个浮点型用==和!=比较,因为小数位是不一样的,但是可以直接大小没问题,所以要比较浮点型解决方法是 abs(x-y) <1e-6 (小于认为二者一样,否则不一样,因为两者差接近0)其中在这里就把系统那一部分精度问题解决了,

比如这样一个情况 1/3 - 1/3应该为0 但如果精度不同
一个为0.3333333一个为0.3333那结果是0.0000333就不为0就不能达到预期效果了,所以为了避免这种情况,设置一个足够小的值看做0就可以避免出现精度损失导致分支错误

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/867534.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号