DBL_EPSILON和 FLT_EPSILON的用法
来源:互联网 发布:mac excel solver 编辑:程序博客网 时间:2024/05/17 23:32
版权声明:本文为博主原创文章,未经博主允许不得转载。
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的最小的正数。
0 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++ :和 :: 的用法
- && 和 || 的一些用法
- 数组的用法和字符串的用法
- &和&&,|和||的用法区别
- 委托 delegate
- win+l不能锁屏 win7
- popupwindow的使用注意点
- MSYQL中系统找不到指定的路径的解决方法
- 手机触屏版页面开发总结
- DBL_EPSILON和 FLT_EPSILON的用法
- android 题
- 转载一篇在扩展中声明类的文章
- IOS控件学习之UIScrollView(5)
- 面试这样谈薪才有戏!
- JSON数据的解析
- Android如何降低service被杀死概率
- 网页后缀html、htm、shtml、shtm有什么区别?
- Android小应用(更新中...)