java的long类型与float相加出错问题

海妖 2014-02-27 04:12:25
public class CodeFour {
public static void main(String[] args) {
long a=300000000L;
float b=1.23f;
long c=123;
b=a+b+c;
System.out.println(b);
}
}
代码如上

打印结果为3.00000128E8,甚为不解,为什么是128,而不是124,求高手指教
...全文
1071 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
海妖 2014-02-27
  • 打赏
  • 举报
回复
引用 1 楼 fangmingshijie 的回复:
精度问题,老生常谈了。
是因为float精度只有7位,所以128的8是不准确的原因么?
海妖 2014-02-27
  • 打赏
  • 举报
回复
你能帮我稍微解释一下么,以前没太关注过这类问题,拜托了
  • 打赏
  • 举报
回复
精度问题,老生常谈了。

62,620

社区成员

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

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