转载自:http://topic.csdn.net/u/20090912/22/1742b219-0411-4577-a68d-bf89148e3df7.html

http://blog.csdn.net/yang3wei/article/details/6846121

For EPSILON, you can use the constants FLT_EPSILON, which is defined for float as 1.192092896e-07F,

or DBL_EPSILON, which is defined for double as 2.2204460492503131e-016.

You need to include float.h for these constants.

These constants are defined as the smallest positive number x, such that x+1.0 is not equal to 1.0.

Because this is a very small number, you should employ user-defined tolerance

for calculations involving very large numbers.

FLT_EPSILON用于float类型。
它是满足 x+1.0不等于1.0的最小的正数

也就是说,所有比FLT_EPSILON小的正数x,x+1.0==1.0都是成立的。

那段定义我明白,我的不明白的是为什么是1.192093e-007,而不是0.000001?

为什么要是0.000001,这个数是由浮点数的表示方法决定的,而不是随便设置的

单精度的浮点数所能识别的最小精度

大伙谁能按照float的存储给咱们讲讲为啥不?
1 8 23
1.0*2^-127
我感觉最小的数字应该是这个数

浮点1 为 符号位 0 , 阶码 0 + 127 , 尾数 1 (0000..) 23 个0 , 最前面的 1 省略 , 既 0x3f800000 , 加上最小的让其不为1的数后结果是 0x3f800001 , 既 1 + 2^-23 ....

因此 flt_epsilon == 2^-23 ....

人家没有装b,float尾数是23位
计算机表示为(1/2)^23 = 0。00000011920

这个其实就是一个定义,叫做机器-ε(machine epsilon),表示1与大于的第一个(或最小)浮点数之差。
对单精度来说,这个差就是2^-23 ,也就是1.190928955078125-e7 约等于1.19092896-e7,对于双精度来说就是
2^-52,约等于2.2204460492503131e-016,这两个分别是FLT_EPSILON 和DBL_EPSILON

FLT_EPSILON为什么等于1.192093e-007相关推荐

  1. “996 是福利,007 才是常态”?!千万程序员怒怼每日优鲜!

    呔!热度不是你想蹭,想蹭就能蹭-- 作者 | 仲培艺 封图 | CSDN 付费下载自东方IC 出品 | 程序人生(ID:coder_life) App Store 评分一日之间从 4.5 断崖直降至 ...

  2. Camshift的理论与代码解释、DBL_EPSILON和 FLT_EPSILON的用法,反向投影

    Camshift原理 camshift利用目标的颜色直方图模型将图像转换为颜色概率分布图,初始化一个搜索窗的大小和位置,并根据上一帧得到的结果自适应调整搜索窗口的位置和大小,从而定位出当前图像中目标的 ...

  3. 电子学-第007课:实验 5:制作电池

    index 电子学-第007课:实验 5:制作电池 视频 需要的物品 预备工作 柠檬实验:第一部分 理论知识:电的本质 背景知识:正电与负电 ==理论知识:基本测量== 实际应用 电子学-第007课: ...

  4. LeetCode简单题之检查某单词是否等于两单词之和

    题目 字母的 字母值 取决于字母在字母表中的位置,从 0 开始 计数.即,'a' -> 0.'b' -> 1.'c' -> 2,以此类推. 对某个由小写字母组成的字符串 s 而言,其 ...

  5. php 1到9加,php通过排列组合实现1到9数字相加都等于20的方法

    摘要:本文实例讲述了php通过排列组合实现1到9数字相加都等于20的方法.分享给大家供大家参考.具体实现方法如下:<?php set_time_limit(0); /* 函数说明:huoqu_z ...

  6. 判断数组里面的下标是否等于一个字符串

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. 使用includes() 1.判断字符串里面是否包含一个字符串 示例: var a = 'aaaaaaaav' ...

  7. shell中大于、等于、小于

    shell中大于.等于.小于 -eq           等于 -ne           不等于 -gt            大于 -lt            小于 -ge           ...

  8. -16 | 12 等于多少

    2019独角兽企业重金招聘Python工程师标准>>> 今天同事问到一个问题 -16 | 12 等于多少? 从教材中知道,二进制数的第一位是符号位,正数为0,负数为1,再根据取反的定 ...

  9. 机器人替代研究员,工作007,完成688次实验,登上Nature封面

    点击上方"视学算法",选择"星标" 快速获得最新干货 本文转自机器之心 今天也要做实验吗?不必了,现在有机器人可以帮忙. 在化学.生物等领域,不少研究生的生活可 ...

最新文章

  1. authc过滤器 shiro_shrio 权限管理filterChainDefinitions过滤器配置
  2. C# SQL封装(一)
  3. Bagging和Boosting 概念及区别
  4. 使用 IntraWeb (15) - 基本控件之 TIWEdit、TIWMemo、TIWText
  5. 5G时代到来,SD-WAN如何发展?-Vecloud微云
  6. prometheus + influxdb + grafana + mysql
  7. flex布局_Flex布局,真香
  8. sql server 2012远程链接的方法及步骤
  9. coldfusion_我从ColdFusion迁移到Java开发
  10. MySQL数据库的权限表
  11. 个人猜测一下《黑神话:悟空》的部分剧情
  12. 7-9 一元多项式的乘法与加法运算 (20 分)
  13. php 开发 oa 框架,基于ThinkPHP框架开发的全功能OA办公管理系统PHP源码
  14. 检查服务器端口占用,服务器中如何检查端口是否开放
  15. 计算机应届生面试招聘自我介绍,计算机应届生面试英文自我介绍
  16. c语言中断的作用,什么是中断?
  17. 微信小程序“发给朋友”onShareAppMessage,“分享到朋友圈”onShareTimeline,“收藏”onAddToFavorites代码
  18. 程序员笑话常客:“rm -rf *“和 “rm -rf /*“的区别
  19. cesium 指南针、比例尺
  20. 想学脑电,没有数据为什么不看这里?

热门文章

  1. ACT游戏开发记录之地图打包工具
  2. 刷题笔记之十一 (计算字符串的编辑距离+微信红包+年终奖+迷宫问题+星际密码+数根)
  3. 如何改变讨好型人格?
  4. Python开发环境部署详细教程,附上免费Python开发平台
  5. Ubuntu 安装常用软件、做Windows10系统盘、初尝试更换硬盘
  6. 电商精细化运营的五大关键指标和三个关键思路——笔记
  7. AutoCAD Mac如何安装?看完这篇你就会了~
  8. java概述及jdk历史演变
  9. bootloader与uboot之间有什么联系?
  10. TOP500 超算榜更新;鲍尔默:Windows 业务被抛弃就出售微软股份