为了账号安全,请及时绑定邮箱和手机立即绑定

请问下各位大神,为什么Java中System.out.println(300.1*3)输出的结果为300.29999999999995,而不是300.3

请问下各位大神,为什么Java中System.out.println(300.1*3)输出的结果为300.29999999999995,而不是300.3

zeng_建军 2016-09-08 18:10:58
public class Test { public static void main(String[] args) { System.out.print("100.1*2 = "); System.out.println(100.1*2); System.out.print("100.1*3 = "); System.out.println(100.1*3); } } 输出结果为: 100.1*2 = 200.2 100.1*3 = 300.29999999999995
查看完整描述

3 回答

?
zeng_建军

TA贡献25条经验 获得超16个赞


其实这个问题我在这里问过,不过没找到满意答案,后来去查了下好像是因为电脑采用二进制运算,具体的我也不太懂。

查看完整回答
反对 回复 2017-01-03
?
慕粉1352413381

TA贡献1条经验 获得超0个赞

这个问题嘛,我也不知道哈

查看完整回答
反对 回复 2017-01-03
?
摩诃迦叶

TA贡献146条经验 获得超54个赞


因为浮点数在存储的时候本来就是近似值而不是精确值

查看完整回答
反对 回复 2016-09-08
  • 3 回答
  • 0 关注
  • 2293 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信