问答详情
源自:10-3 Java 中的抽象类

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

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

输出结果为什么是62.800000000000004


提问者:didi1234 2015-09-18 17:01

个回答

  • _潇潇暮雨
    2015-09-19 13:45:08
    已采纳

    不是随机的,你可以将数字转化成二进制,然后相加再转化成十进制。(大多数小数在计算机中无法精确保存,只有形如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


  • _潇潇暮雨
    2015-09-18 19:37:55

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