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

来源:10-3 Java 中的抽象类

didi1234

2015-09-18 17:01

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

输出结果为什么是62.800000000000004


写回答 关注

2回答

  • _潇潇暮雨
    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


    didi12...

    非常感谢!明白了

    2015-09-19 16:10:33

    共 1 条回复 >

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

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

    didi12...

    可是后面为什么会什么会有这么一长串的数字,最后一位为什么是4啊,是随机的吗?

    2015-09-19 11:32:26

    共 1 条回复 >

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530655 学习 · 6091 问题

查看课程

相似问题