didi1234
2015-09-18 17:01
在java中double per=2*3.14*10;
输出结果为什么是62.800000000000004
不是随机的,你可以将数字转化成二进制,然后相加再转化成十进制。(大多数小数在计算机中无法精确保存,只有形如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
浮点数在计算机内部是无法精确保存的。
Java入门第二季 升级版
530562 学习 · 6091 问题
相似问题