8362.98*100却等于836298.0如题。

解决方案 »

  1.   

    class test
    {
      public static void main(String []args)
      {
         double i=8362.98*100;
         System.out.println(i);
         
      }
    }
    我试了,显示836298.0 是正常的啊!
      

  2.   

    float和double主要是用于科学计算。可以看看浮点数在内存里的存储、计算方法。
    如果在计算金额,使用BigDecimal。或者int/long并自己处理小数点问题。
      

  3.   

    计算机里表示小数本来就是不准确的!!!!!!
    计算机用的是二进制,小数是十进制...楼主自己google一下 浮点数在计算机里是怎么表示的,就会清楚..
      

  4.   

    计算机里表示小数本来就是不准确的;
    特别是尾数比较多时
    DOUBLE在所有情况下都有一个精确范围
      

  5.   

    double型用于科学计算 改为BigDecimal
      

  6.   

    如果楼主想用的是money表示,可以用int整型来存储,重写toString() 让它的输出为value/100,单独写个类,这样就不会有小数的问题了