0.3f==0.3和0.5f==0.5的返回值分别是什么?

缘影天涯 2013-05-15 09:12:22
0.3f==0.3和0.5f==0.5的返回值分别是什么?麻烦写一下具体的运算步骤。万分感谢
...全文
622 7 打赏 收藏 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
火影之贺 2013-05-16
  • 打赏
  • 举报
回复
小数的表示就是乘2取整。 所以0.5是可以精确表示的,0.5*2=1 0.3不行,0.3*2=0.6, 0.6*2=1.2, 去掉整数1后0.2*2=0.4, 0.4*2=0.8, 0.8*2=1.6,去掉1后又到了0.6了。这么循环下去。。。
缘影天涯 2013-05-16
  • 打赏
  • 举报
回复
学习了,谢谢各位!
tfling2012 2013-05-16
  • 打赏
  • 举报
回复
学习了,好多东西看上去简单,其实复杂
ppmmwozuiai 2013-05-16
  • 打赏
  • 举报
回复
float和double类型的数值操作一般转换成BigDecimal来做。因为精度缘故
wandefajin 2013-05-15
  • 打赏
  • 举报
回复
并不是类型不同的问题 而是有些小数无法用float或double精确表示的问题 比如0.x是一个无法用二进制精确表示的数 那么,float a = 0.x实际保存的可能是0.x.......10983,也就是说后面还有数字 double的话同是如此,但double的位数更多 所以,这样用==来比较肯定不相等 一般程序中,是很少用float,double直接==比较的,如果不可避免这两种类型的比较,一般采用减法来做,如 if(a-b<0.000001) { //就表示两者相等,精度自己控制 }
  • 打赏
  • 举报
回复
System.out.println(0.3f == 0.3); false System.out.println(0.5f == 0.5); true
xiars123 2013-05-15
  • 打赏
  • 举报
回复
自己写一下代码,这还能拆出什么步骤,一行代码就能搞定还要玩花吗?

62,620

社区成员

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

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