请问为何FLT_MIN和FLT_EPSILON的值会不同,而且相差这么多

xinjian1001 2011-12-03 06:17:25
FLT_MIN是保留全部精度的float类型正数的最小值,FLT_EPSILON是1.00和比1.00大的最小的float类型之间的差值。我以为这两个应该是同样的概念同样的值,但其实FLT_MIN=1.175494e-38,FLT_EPSILON=1.192093e-07。不明白为何比1.00大的最小的float类型减去1.00得到的FLT_EPSILON会和相差这么大的等级。
...全文
527 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
pclvmm 2011-12-03
  • 打赏
  • 举报
回复
刚才一错别字

IEEE浮点数表示中 例如八位数
FLT_MIN 是0 0000 001 是最小的非规格化数 1/(2^6*2^4)

而比1.00大的最小的float x=0 0111 001 这是规格化数 x=(2^3+1)/2^3
FLT_EPSILON = x-1=1/2^3
pclvmm 2011-12-03
  • 打赏
  • 举报
回复
IEEE浮点数表示中 例如八位数
FLT_MIN 是0 0000 001 是它的最下的非规格化数 1/(2^6*2^4)

而比1.00大的最小的float x=0 0111 001 这是规格化数 x=(2^3+1)/2^3
FLT_EPSILON = x-1=1/2^3
Soulic 2011-12-03
  • 打赏
  • 举报
回复
这个是和float数据表示有关了

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧