当前位置: 代码迷 >> J2SE >> 0.5f==0.5 0.3f==0.3解决思路
  详细解决方案

0.5f==0.5 0.3f==0.3解决思路

热度:3930   发布时间:2013-02-25 21:55:39.0
0.5f==0.5 0.3f==0.3
0.5f==0.5 0.3f==0.3 返回值是什么呢?并不是类型不同的问题

而是有些小数无法用float或double精确表示的问题

比如0.x是一个无法用二进制精确表示的数

那么,float a = 0.x实际保存的可能是0.x.......10983,也就是说后面还有数字
double的话同是如此,但double的位数更多

所以,这样用==来比较肯定不相等

一般程序中,是很少用float,double直接==比较的,如果不可避免这两种类型的比较,一般采用减法来做,如
if(a-b<0.000001) {
//就表示两者相等,精度自己控制
}
  相关解决方案