24小时热门版块排行榜    

查看: 1596  |  回复: 0

我爱小虫子

新虫 (正式写手)

[求助] 再谈float 与零值问题

想来关注一下细节,又迷茫了,望大神给解惑。。。
我们说比较float型变量x与0的大小时,要设置一个精度epsilon,
const float EPSINON = 0.00001; //自己设定的一个精度
  if ((x >= - EPSINON) && (x <= EPSINON)
在这个范围内,则认为,x是=0的。

今天看到了<float.h>头文件,
FLT_EPSILON (小的正数,float的0跨度值),我是不是可以认为 ,上面的const 常量的定义可以省略,比较直接换成if ((x >= - FLT_EPSINON) && (x <=FLT_ EPSINON) 上面说的这一堆好像没有问题,对吧

看下面:
在<float.h>头文件中,FLT_EPSILON的宏定义
#include<float.h>
cout<<"FLT_EPSILON="<<FLT_EPSILON<<endl;
cout<<"FLT_MIN="<<FLT_MIN<<endl;
float f=0.00000000000000000000000000000000000000000000000002;  //此处可以先不去看f到底多大
        cout<<f<<endl;
        cout<<(f==0)<<endl;
由下图可以看到精度的指数是-7,最小值的指数是-38,我发现,当我这个f的指数不超过-(7+38)时,它存的都是一个接近我定义的f的数,但是,如果f的指数为-46,或者-48了,这时候存的f 就是0了,f==0这时是成立的。

现在有个疑惑,我是不是可以这样认为,其实,float是可以和零值比较的,前提是它足够小(不只是小于了宏定义里的最小值,还牵扯到精度的指数)。

测试了一下,如果我定义的f的指数是-48时,(2*10^-48)结果如下图1,f显示存的是0
如果我定义的f的指数是-44时,结果如下图2,f显示存的是一个接近定义数的浮点数

以上观点是我今天测试时感觉到的,想请教大神证实一下,我有没有误解。。。。
再谈float 与零值问题
1.jpg


再谈float 与零值问题-1
2.jpg
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 我爱小虫子 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 320求调剂0856 +3 不想起名字112 2026-03-19 3/150 2026-03-19 22:53 by 学员8dgXkO
[考博] 申博26年 +3 八6八68 2026-03-19 3/150 2026-03-19 19:43 by nxgogo
[考研] 288求调剂,一志愿华南理工大学071005 +5 ioodiiij 2026-03-17 5/250 2026-03-19 18:22 by zcl123
[考研] 324分 085600材料化工求调剂 +3 llllkkkhh 2026-03-18 3/150 2026-03-19 14:22 by houyaoxu
[考研] 一志愿福大288有机化学,求调剂 +3 小木虫200408204 2026-03-18 3/150 2026-03-19 13:31 by houyaoxu
[考研] 328求调剂,英语六级551,有科研经历 +4 生物工程调剂 2026-03-16 12/600 2026-03-19 11:10 by 生物工程调剂
[考研] 一志愿985,本科211,0817化学工程与技术319求调剂 +10 Liwangman 2026-03-15 10/500 2026-03-19 10:25 by 无际的草原
[考研] 332求调剂 +3 ydfyh 2026-03-17 3/150 2026-03-19 10:14 by 功夫疯狂
[考研] 材料专业求调剂 +5 hanamiko 2026-03-18 5/250 2026-03-18 20:19 by 星空星月
[考研] 一志愿武理材料305分求调剂 +5 想上岸的鲤鱼 2026-03-18 6/300 2026-03-18 17:53 by 无际的草原
[考研] 26调剂/材料/英一数二/总分289/已过A区线 +7 步川酷紫123 2026-03-13 7/350 2026-03-18 17:12 by 尽舜尧1
[考研] 0854,计算机类招收调剂 +3 胡辣汤放糖 2026-03-15 6/300 2026-03-18 12:09 by 上岸上岸……..
[考研] 280求调剂 +6 咕噜晓晓 2026-03-18 7/350 2026-03-18 11:25 by 无际的草原
[考博] 26博士申请 +3 1042136743 2026-03-17 3/150 2026-03-17 23:30 by 轻松不少随
[考研] 一志愿南京大学,080500材料科学与工程,调剂 +4 Jy? 2026-03-16 4/200 2026-03-17 11:02 by gaoqiong
[考研] 302求调剂 +4 小贾同学123 2026-03-15 8/400 2026-03-17 10:33 by 小贾同学123
[考研] 283求调剂 +3 听风就是雨; 2026-03-16 3/150 2026-03-17 07:41 by 热情沙漠
[考研] 274求调剂 +5 时间点 2026-03-13 5/250 2026-03-17 07:34 by 热情沙漠
[考研] 321求调剂 +5 大米饭! 2026-03-15 5/250 2026-03-16 16:33 by houyaoxu
[考研] 中科大材料与化工319求调剂 +3 孟鑫材料 2026-03-14 3/150 2026-03-14 20:10 by ms629
信息提示
请填处理意见