java吧 关注:1,225,715贴子:12,682,799
  • 8回复贴,共1

3*3.3不等于9.9么?

只看楼主收藏回复



IP属地:辽宁来自Android客户端1楼2017-01-28 20:22回复


    IP属地:辽宁来自Android客户端3楼2017-01-28 20:22
    回复
      这是为什么 什么鬼


      IP属地:辽宁来自Android客户端4楼2017-01-28 20:22
      回复
        3.33*3却等于9.99


        IP属地:辽宁来自Android客户端5楼2017-01-28 20:23
        回复
          浮点数或是双精度浮点数无法精确表示的情况并不少见。浮点数值没办法用十进制来精确表示的原因要归咎于CPU表示浮点数的方法。这样的话您就可能会牺牲一些精度,有些浮点数运算也会引入误差。以上面提到的情况为例,2.4的二进制表示并非就是精确的2.4。反而最为接近的二进制表示是 2.3999999999999999。原因在于浮点数由两部分组成:指数和尾数。浮点数的值实际上是由一个特定的数学公式计算得到的。您所遇到的精度损失会在任何操作系统和编程环境中遇到。
          注意: 您可以使用Binary Coded Decimal (BCD)库来保持精度。BCD数字编码方法会把每一个十进制数字位单独编码。


          IP属地:江苏7楼2017-01-28 20:38
          回复
            设置成长类型试试


            IP属地:内蒙古9楼2017-01-28 20:47
            回复
              加减乘除都要用BigDecimal类来算


              IP属地:广东来自Android客户端10楼2017-01-28 20:54
              回复
                eclipcse的问题,双精度浮点值。。。


                IP属地:广东来自iPhone客户端12楼2017-01-28 23:03
                回复