一句话说明浮点数为何不能直接 if(f== 0.0)这样判断
来源:互联网 发布:java web 2年水平 编辑:程序博客网 时间:2024/06/05 19:22
float f = 0.33f * 0.2f;
if(f - 0.066f == 0.0f)
if(f - 0.066f == 0.0f)
f = 0;
这个是来自csdn论坛的一个帖子,说的比较简单明了。这里是不会走到f=0这个地方的,因为浮点数是底数+指数的存储,计算机并不能连续存储指定精度宽度内的所有浮点数。上述例子中,f第一次计算结果不是0.066,是比0.066稍大的一个数f = 0.066000007,傻眼了吧,呵呵。当然,你要是写成33*2那肯定是66.所有浮点数的与零比较,还是按照
if( f > - 0.0...01 && f < 0.0...01) do-somthing 来写比较安全
0 0
- 一句话说明浮点数为何不能直接 if(f== 0.0)这样判断
- 为何浮点数(float,double)不能直接用等号比较
- 为何浮点数(float,double)不能直…
- 浮点数的比较问题,不能直接比较,需用精度
- 浮点数的比较问题,不能直接比较,需用精度
- 浮点数的比较问题,不能直接比较,需用精度
- 浮点数的比较问题,不能直接比较,需用精度
- 浮点数的比较问题,不能直接比较,需用精度
- 浮点数的比较问题,不能直接比较,需用精度
- 浮点数的比较问题,不能直接比较,需用精度
- 浮点数的比较问题,不能直接比较,需用精度
- java中浮点数不能直接运算,需用BigDecimal类
- 为什么浮点数不能直接与零值比较?谢谢
- 不可将两个浮点数 直接做 相等比较判断
- 浮点数判断相等
- 浮点数的存储,判断大小端,汇编指令,if和swith
- 浮点数为什么不能直接和0相比的小测试
- 浮点数不可以直接用“==”和“!=”进行比较
- 操作系统 进程调度算法 浅析
- 关于中文乱码
- 关系型数据库与NOSQL基本概念
- ioremap 函数映射操作已知的物理地址(寄存器、端口、IO)
- 小白学开发(iOS)OC_类和对象(2015-07-22)
- 一句话说明浮点数为何不能直接 if(f== 0.0)这样判断
- Linux kernel 分析之二十:内存管理-内核中的页表映射总结
- UVA11997 K Smallest Sums(并归,优先队列)
- an internal error occurred during building workspace
- zoj 1204 Additive equations
- HDU 5305 Friends (DFS)
- 1008. Elevator (20)
- linux awk命令详解
- 用队列实现栈