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

在java中double per=2*3.14*10; 输出结果为什么是62.800000000000004

在java中double per=2*3.14*10;

输出结果为什么是62.800000000000004


正在回答

2 回答

不是随机的,你可以将数字转化成二进制,然后相加再转化成十进制。(大多数小数在计算机中无法精确保存,只有形如2^n1 + 2^n2 + ...+ 2^m的小数可以精确保存),例如0.1与0.2的和就不是0.3,因为0.1和0.2无法用2的多少次幂来表示。而0.5(2^-1)、0.75(2^-1 + 2^-2)等这样的小数就可以精确保存。你可以参考以下这个http://www.zhihu.com/question/23038883


0 回复 有任何疑惑可以回复我~
#1

didi1234 提问者

非常感谢!明白了
2015-09-19 回复 有任何疑惑可以回复我~

浮点数在计算机内部是无法精确保存的。

0 回复 有任何疑惑可以回复我~
#1

didi1234 提问者

可是后面为什么会什么会有这么一长串的数字,最后一位为什么是4啊,是随机的吗?
2015-09-19 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

在java中double per=2*3.14*10; 输出结果为什么是62.800000000000004

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信