DBL_EPSILON和 FLT_EPSILON的用法
来源:互联网 发布:mac ftp上传工具下载 编辑:程序博客网 时间:2024/05/21 08:59
DBL_EPSILON和 FLT_EPSILON主要用于单精度和双精度的比较当中:
A、
double a = 0.5;if (a == 0.5) //正确x++;
B、
double b = sin(M_PI / 6.0); if (b == 0.5) //不一定就正确 x++;
A、就正确
B、就不一定正确,b==0.5的结果取决于处理器、编译器的版本和设置。比如 Visual C++ 2010 编译器编译后运行b的值为0.49999999999999994
我的一种改进:
double b = sin(M_PI / 6.0);if (fabs(b - 0.5) < DBL_EPSILON)x++;或者:
double b = sin(M_PI / 6.0);x+= (fabs(b - 0.5) < DBL_EPSILON)?0:1;
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++ :和 :: 的用法
- && 和 || 的一些用法
- 数组的用法和字符串的用法
- &和&&,|和||的用法区别
- Android ViewGroup Click 没有传递和分发到 Child View
- iOS里的单元测试
- 搭建Gerrit和JazzHub(GitHub)的步骤
- ffmepg tutorial1
- 正则表达式的强大
- DBL_EPSILON和 FLT_EPSILON的用法
- GetMessage&PeekMessage 和SendMessage&PostMessage
- 图片缩放,解决OOM
- Swift编程语言笔记
- IOS中的block和retain cycle
- JAVA的JSON示例
- 利用window.performance.timing检测页面加载速度
- 提升tomcat服务器性能的七条经验
- JAVA日期查询:季度、月份、星期等时间信息