Fortran Coder

查看: 1957|回复: 2
打印 上一主题 下一主题

[数值问题] 如何比较real类型变量和0.0?

[复制链接]

54

帖子

0

主题

0

精华

实习版主

F 币
653 元
贡献
214 点

元老勋章新人勋章

QQ
楼主
发表于 2022-11-10 10:43:45 | 显示全部楼层
一般来说浮点数不做相等判断。
但是对于 0.0 是个特殊,可以做  a==0.0 的判断。
也不是说几乎不可能成立,还是有可能成立的。(因为浮点数能精确的表达0.0,而其他一些数字,例如1.6,浮点数不能精确表达)
如果三个公式的差别非常大,确实容易因浮点数误差导致“混沌”现象。

有时候会用 if( abs(a)<eps) 之类的方式(eps取一个较小的数,例如1.0e-6)来代替,但还是要看具体情况。a 的数值来源怎样?经过了什么计算,大概的取值范围如何。
综合考虑是直接判断,还是用 abs<eps 的方式,具体eps的取值等。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-5 01:29

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表