你们定义金额字段是用float吗?我现在就是用float,结果发现会有点问题,204,000.98  + 269000.88 的值本来应该是473,001.86,结果得出的值居然是473,001.88  。我试着在eclipse里面直接修改变量试试,结果我发现把269000.88改成269000.83,它在变量里面自动会变成269000.84,有人知道是为什么吗?帮帮忙哦,急啊

解决方案 »

  1.   

    http://blog.csdn.net/net_jun
    这个可以解决你的问题
      

  2.   

    用BigDecimal类,float和double都会有误差.
      

  3.   

    用BigDecimal的话,好像只有double的才有效,float的无效啊,
    我用float的204,000.98  + 269000.88 值仍为473,001.88,double型的才是473,001.859
    但是我原来所有的都定义成float的,要全部改成double要改动很大啊,有没有办法float的也可以处理?
      

  4.   

    oracle是不是没有double型的?oracle的金额你们都是怎么处理的?
      

  5.   

    如果是纯整数的用: Long
    如果是有小数的,用 BigDecimal
    现在很少有人在java里面用 float, 和 double 了。