我從SQL Server里取了數據50和0.3999,可是乘出來的結果確實19.994999,我保留2位小數,就成了19.99,但實際結果應該是19.995,四舍五入就是20.00啊?這是怎麼回事?那位高手幫忙解決,十萬火急

解决方案 »

  1.   

    我都用BigDecimal.ROUND_HALF_DOWN做了四舍五入的處理,可是還不行.急!!
      

  2.   

    select LTRIM(RTRIM(STR(ROUND(50*0.3999, 2),15,2)))
      

  3.   

    是用round方法吧
    我知道oracle里的四舍五入是用round()方法
      

  4.   

    先把0.3999四舍五入的話,算的結果就完全不一樣了
    用select LTRIM(RTRIM(STR(ROUND(50*0.3999, 2),15,2)))也不行,因為我這些數據都是從SQLSERVER中調出來的,只能用變量來表示,算出來的結果還是一樣
      

  5.   

    口算就很方便:( 0.3999/2*100 把小数相乘除变为整数相乘除.
    double d=0.3999d;d=d*10000;d=d/200;