FLT_EPSILON为什么等于1.192093e-007
转载自: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相关推荐
- “996 是福利,007 才是常态”?!千万程序员怒怼每日优鲜!
呔!热度不是你想蹭,想蹭就能蹭-- 作者 | 仲培艺 封图 | CSDN 付费下载自东方IC 出品 | 程序人生(ID:coder_life) App Store 评分一日之间从 4.5 断崖直降至 ...
- Camshift的理论与代码解释、DBL_EPSILON和 FLT_EPSILON的用法,反向投影
Camshift原理 camshift利用目标的颜色直方图模型将图像转换为颜色概率分布图,初始化一个搜索窗的大小和位置,并根据上一帧得到的结果自适应调整搜索窗口的位置和大小,从而定位出当前图像中目标的 ...
- 电子学-第007课:实验 5:制作电池
index 电子学-第007课:实验 5:制作电池 视频 需要的物品 预备工作 柠檬实验:第一部分 理论知识:电的本质 背景知识:正电与负电 ==理论知识:基本测量== 实际应用 电子学-第007课: ...
- LeetCode简单题之检查某单词是否等于两单词之和
题目 字母的 字母值 取决于字母在字母表中的位置,从 0 开始 计数.即,'a' -> 0.'b' -> 1.'c' -> 2,以此类推. 对某个由小写字母组成的字符串 s 而言,其 ...
- php 1到9加,php通过排列组合实现1到9数字相加都等于20的方法
摘要:本文实例讲述了php通过排列组合实现1到9数字相加都等于20的方法.分享给大家供大家参考.具体实现方法如下:<?php set_time_limit(0); /* 函数说明:huoqu_z ...
- 判断数组里面的下标是否等于一个字符串
微信小程序开发交流qq群 173683895 承接微信小程序开发.扫码加微信. 使用includes() 1.判断字符串里面是否包含一个字符串 示例: var a = 'aaaaaaaav' ...
- shell中大于、等于、小于
shell中大于.等于.小于 -eq 等于 -ne 不等于 -gt 大于 -lt 小于 -ge ...
- -16 | 12 等于多少
2019独角兽企业重金招聘Python工程师标准>>> 今天同事问到一个问题 -16 | 12 等于多少? 从教材中知道,二进制数的第一位是符号位,正数为0,负数为1,再根据取反的定 ...
- 机器人替代研究员,工作007,完成688次实验,登上Nature封面
点击上方"视学算法",选择"星标" 快速获得最新干货 本文转自机器之心 今天也要做实验吗?不必了,现在有机器人可以帮忙. 在化学.生物等领域,不少研究生的生活可 ...
最新文章
- authc过滤器 shiro_shrio 权限管理filterChainDefinitions过滤器配置
- C# SQL封装(一)
- Bagging和Boosting 概念及区别
- 使用 IntraWeb (15) - 基本控件之 TIWEdit、TIWMemo、TIWText
- 5G时代到来,SD-WAN如何发展?-Vecloud微云
- prometheus + influxdb + grafana + mysql
- flex布局_Flex布局,真香
- sql server 2012远程链接的方法及步骤
- coldfusion_我从ColdFusion迁移到Java开发
- MySQL数据库的权限表
- 个人猜测一下《黑神话:悟空》的部分剧情
- 7-9 一元多项式的乘法与加法运算 (20 分)
- php 开发 oa 框架,基于ThinkPHP框架开发的全功能OA办公管理系统PHP源码
- 检查服务器端口占用,服务器中如何检查端口是否开放
- 计算机应届生面试招聘自我介绍,计算机应届生面试英文自我介绍
- c语言中断的作用,什么是中断?
- 微信小程序“发给朋友”onShareAppMessage,“分享到朋友圈”onShareTimeline,“收藏”onAddToFavorites代码
- 程序员笑话常客:“rm -rf *“和 “rm -rf /*“的区别
- cesium 指南针、比例尺
- 想学脑电,没有数据为什么不看这里?
热门文章
- ACT游戏开发记录之地图打包工具
- 刷题笔记之十一 (计算字符串的编辑距离+微信红包+年终奖+迷宫问题+星际密码+数根)
- 如何改变讨好型人格?
- Python开发环境部署详细教程,附上免费Python开发平台
- Ubuntu 安装常用软件、做Windows10系统盘、初尝试更换硬盘
- 电商精细化运营的五大关键指标和三个关键思路——笔记
- AutoCAD Mac如何安装?看完这篇你就会了~
- java概述及jdk历史演变
- bootloader与uboot之间有什么联系?
- TOP500 超算榜更新;鲍尔默:Windows 业务被抛弃就出售微软股份