首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

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

2012-12-23 
0.5f0.5 0.3f0.30.5f0.5 0.3f0.3 返回值是什么呢?[解决办法]并不是类型不同的问题而是有些小数无

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) {
//就表示两者相等,精度自己控制
}

热点排行