浮点型数据和0进行比较的探究
来源:互联网 发布:淘宝什么时候有活动 编辑:程序博客网 时间:2024/05/26 02:21
问题提出:
int main(){double i = 20.0;double j = i / 7.0;if (j * 7.0 == i)printf(“equal\n”);elseprintf(“not equal\n”);return 0;}
上述代码在vs编译器下的运行结果为equal,在Linux环境下运行结果为not equal。造成这种结果的原因是什么?
分析原因:
因为浮点数在内存中的存储方式使得,有些浮点数在内存中无法精确的存储,这样就必然有精度的丢失。一旦丢失就可能计算不够准确。无法使用 == 直接判断两个浮点数相等。
问题解决:
设置一个能接受的精度,保证误差在精度范围内就可以了
#define EXP 0.0000000001float f = 0.0000001;if(((f-21.0) > -EXP)&&((f-21.0) < EXP)) //判断f==21{//就意味着f是无限接近0的数字,就约等于0}
阅读全文
0 0
- 浮点型数据和0进行比较的探究
- 浮点型数据和0的比较
- 124.浮点型数据精度不准确的探究
- 浮点型和零的比较
- 利用NumberFormat和DecimalFormatSymbols对浮点型数据进行格式化
- Java中用浮点型数据Float和Double进行精确计算时的精度问题
- Java中用浮点型数据Float和Double进行精确计算时的精度问题
- Java中用浮点型数据Float和Double进行精确计算时的精度问题
- Java中浮点型数据Float和Double进行精确计算的问题
- 进行浮点比较
- 浮点类型和0比较
- php中浮点类型数据的比较
- 浮点型数据等量比较问题
- 浮点型与0比较
- C++中的整型数据和浮点型数据的属性
- 浮点型数据的转换
- 浮点型数据的比较2010-04-16 12:15应注意排列顺序
- 浮点数与0的比较
- 1004. 成绩排名 (20)
- 欧拉回路与欧拉道路
- 卷积的使用
- JQuery EasyUI学习总结
- Linux-USB总线驱动分析
- 浮点型数据和0进行比较的探究
- java之IO流
- pat a 1007 Maximum Subsequence Sum
- httpwacth 记录网页信息与浏览器缓存和ie之见的交互
- 数据库探索之旅——连接数据库
- No Pain No Game(数状数组离线查询)
- 【DP】BZOJ4300 绝世好题
- Jian
- 问题移动话费觉得诶度奥哦啊