DBL_EPSILON和 FLT_EPSILON的用法
来源:互联网 发布:搞笑的淘宝收货人名字 编辑:程序博客网 时间:2024/05/18 00:50
DBL_EPSILON和 FLT_EPSILON主要用于单精度和双精度的比较当中:
double a = 0.5;if (a == 0.5) //正确x++;double b = sin(M_PI / 6.0);if (b == 0.5) //错误x++;
第一个比较正确,第二个可能正确也可能错误,b==0.5的结果取决于处理器、编译器的版本和设置。比如 Visual C++ 2010 编译器编译后运行b的值为0.49999999999999994
一种正确的比较方法应该是这样的:
double b = sin(M_PI / 6.0);if (fabs(b - 0.5) < DBL_EPSILON)x++;
以上的例子可以看出,EPSILON是最小误差。 是EPSILON+X不等于X的最小的正数。
5 0
- DBL_EPSILON和 FLT_EPSILON的用法
- DBL_EPSILON和 FLT_EPSILON的用法
- DBL_EPSILON和 FLT_EPSILON的用法
- DBL_EPSILON和 FLT_EPSILON的用法
- Camshift的理论与代码解释、DBL_EPSILON和 FLT_EPSILON的用法,反向投影
- FLT_EPSILON 的值为 1.192092896e-07F 的缘由
- FLT_EPSILON定义在<float.h>
- FLT_EPSILON定义在<float.h>
- FLT_MIN,FLT_MAX,FLT_EPSILON 有什么用?
- FLT_EPSILON为什么等于1.192093e-007
- FLT_EPSILON为什么等于1.192093e-007
- #和##的用法
- ibatis#和$的用法
- #和##的用法
- C++ :和 :: 的用法
- && 和 || 的一些用法
- 数组的用法和字符串的用法
- &和&&,|和||的用法区别
- POJ 2182 Lost Cows
- hdu1856 More is better(并查集)
- 设置 quick-cocos2d-x 在 Mac 下的编译环境
- PHP5 session 详解【经典】
- 图像配准实现代码VC6.0移植VC2010问题总结
- DBL_EPSILON和 FLT_EPSILON的用法
- MySQL Replace INTO的使用
- 题意:给两个序列(长度达10^5,序列内的数都不同且都小于10^5),求这两个序列的最长公共序列的长度
- php处理cnd 创建11.bat批处理文件
- iOS:自定义UIBarButtonItem
- 获取当前类的绝对路径,去掉file:/
- 近期热门降价智机汇总 最高直降3000元
- Linux内存点滴:用户进程内存空间
- 正则表达式