0.5f==0.5 0.3f==0.3

harderror 2012-12-07 08:05:37
0.5f==0.5 0.3f==0.3 返回值是什么呢?
...全文
549 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
陈不沉0516 2014-10-23
  • 打赏
  • 举报
回复
原来如此!二进制的问题啊
  • 打赏
  • 举报
回复
10楼正解。 与类型无关,而是真正的2进制表示。 System.out.println(0.5f == 0.5); System.out.println(0.3f == 0.3); System.out.println(0.25f == 0.25); System.out.println(5f == 5); 结果是 true false true true ------------------------------------------------------------------------------------ 回复一帖,10分到手。菜鸟路过,学习快乐。
龙四 2012-12-08
  • 打赏
  • 举报
回复
并不是类型不同的问题 而是有些小数无法用float或double精确表示的问题 比如0.x是一个无法用二进制精确表示的数 那么,float a = 0.x实际保存的可能是0.x.......10983,也就是说后面还有数字 double的话同是如此,但double的位数更多 所以,这样用==来比较肯定不相等 一般程序中,是很少用float,double直接==比较的,如果不可避免这两种类型的比较,一般采用减法来做,如 if(a-b<0.000001) { //就表示两者相等,精度自己控制 }
yongger520 2012-12-08
  • 打赏
  • 举报
回复
lz 感觉这种问题没有实用性哦
wonkju 2012-12-08
  • 打赏
  • 举报
回复
咋这个问题到现在还没结贴哦···LZ还不知道么
一起来玩玩呗 2012-12-08
  • 打赏
  • 举报
回复
引用 10 楼 ticmy 的回复:
并不是类型不同的问题 而是有些小数无法用float或double精确表示的问题 比如0.x是一个无法用二进制精确表示的数 那么,float a = 0.x实际保存的可能是0.x.......10983,也就是说后面还有数字 double的话同是如此,但double的位数更多 所以,这样用==来比较肯定不相等 一般程序中,是很少用float,……
+1
wonkju 2012-12-07
  • 打赏
  • 举报
回复
两个都是false哈,这里唯一的隐藏问题是,默认情况下 小数点在java中是 double 的, 就像默认的 整数是int 类型,不是short 或者byte等。 所以,要让JVM能识别我们制定的类型,就要进行强制类型转换。就像 如: 方式一:float f = 0.3f (0.3F) 或者 方式二:float f = (float)0.3
青春code 2012-12-07
  • 打赏
  • 举报
回复
从运行结果中再去分析
huntor 2012-12-07
  • 打赏
  • 举报
回复
0.5是2的-1次方
一起来玩玩呗 2012-12-07
  • 打赏
  • 举报
回复
引用 5 楼 fangmingshijie 的回复:
0.5这个比较特殊。
你也可以试下1.0
  • 打赏
  • 举报
回复
0.5这个比较特殊。
harderror 2012-12-07
  • 打赏
  • 举报
回复
0.5f==0.5 应该是ture吧?比较是二进制吧?
harderror 2012-12-07
  • 打赏
  • 举报
回复
引用 2 楼 peng_hao1988 的回复:
0.5f==0.5 结果:false 0.3f==0.3 结果:false 0.3再没指定精度时,默认是双精度(d),而f是单精度,两者是不同的类型,所以不等。
可是运行结果不是这样的
桃园闲人 2012-12-07
  • 打赏
  • 举报
回复
0.5f==0.5 结果:false 0.3f==0.3 结果:false 0.3再没指定精度时,默认是双精度(d),而f是单精度,两者是不同的类型,所以不等。
huntor 2012-12-07
  • 打赏
  • 举报
回复
false 长度6的字串

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧