辅导:JAVA技巧(java中float运算的精度问题)
来源:优易学  2011-11-6 15:33:56   【优易学:中国教育考试门户网】   资料下载   IT书店
  一个float减法的时候出了点问题,找了半天,原来是关于flloat精度的问题
  问题描述如下:
  public float getLeftMoney() throws Exception {
  // TODO Auto-generated method stub
  float m = new MoneyDaoImpl().CountAllMoney();
  float c = new DetailsDaoImpl().countDetailsMoney();
  flaot less = m-c;
  System.out.println(m);
  System.out.println(c);
  System.out.println(less);
  return less;
  }
  加入m=4.4 c=3.0 或许结果会得出0.399999,可能结果不是这个,记得不太清楚了,青年人网站提示但会丢失精度,解决方法如下
  public float getLeftMoney() throws Exception {
  // TODO Auto-generated method stub
  float m = new MoneyDaoImpl().CountAllMoney();
  float c = new DetailsDaoImpl().countDetailsMoney();
  BigDecimal b1 = new BigDecimal(Float.toString(m));
  BigDecimal b2 = new BigDecimal(Float.toString(c));
  System.out.println(m);
  System.out.println(c);
  Float less = b1.subtract(b2).floatValue();
  System.out.println(less);
  return less;
  }

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训