浮点相等的精度问题
来源:互联网 发布:淘宝套现信用卡手续费 编辑:程序博客网 时间:2024/06/02 16:24
引进eps,来辅助判断浮点数的相等。
eps缩写自epsilon,表示一个小量,但这个小量又要确保远大于浮点运算结果的不确定量。eps最常见的取值是1e-8左右。引入eps后,我们判断两浮点数a、b相等的方式如下:
定义三出口函数如下: int sgn(double a){return a < -eps ? -1 : a < eps ? 0 : 1;}
则各种判断大小的运算都应做如下修正:
传统意义
修正写法1
修正写法2
a == b
sgn(a - b) == 0
fabs(a – b) < eps
a != b
sgn(a - b) != 0
fabs(a – b) > eps
a < b
sgn(a - b) < 0
a – b < -eps
a <= b
sgn(a - b) <= 0
a – b < eps
a > b
sgn(a - b) > 0
a – b > eps
a >= b
sgn(a - b) >= 0
a – b > -eps
这样,我们才能把相差非常近的浮点数判为相等;同时把确实相差较大(差值大于eps)的数判为不相等。
0 0
- 浮点相等的精度问题
- 浮点数的精度问题
- JS浮点运算精度的问题
- (转)Direct3D的浮点精度问题
- JAVA中浮点数的精度问题
- 浮点数精度的一点问题
- Java中浮点数的精度问题
- Java中浮点数的精度问题
- JS中浮点数精度的问题
- 浮点型数据的精度控制问题
- JavaScript浮点运算的精度问题
- js中浮点数的精度问题
- JAVA中浮点数的精度问题
- php浮点数的精度问题深究
- JavaScript 浮点数运算的精度问题
- 浮点数精度丢失问题的解决
- 也谈浮点精度问题:找回丢失的精度
- PHP浮点精度问题
- Python.Calling a JSON API
- opencv初体验
- iOS的MD5/SHA1加密算法的实现
- Hadoop1.x与Hadoop2的区别
- MFC消息映射机制的具体实现方法
- 浮点相等的精度问题
- SSH框架整合简介
- Centos 7.2 配置防火墙
- HashMap的实现原理
- 杨辉三角(利用二维数组)
- 习题20 函数和文件
- Xcode7 编译出错---does not contain bitcode
- Android Bluetooth开发总结-----/*自己编写*/
- ftl判断是否相等,判断是否为空,得到list长度的问题、截取字符串长度