java double类型计算出现的精度问题

方法一: 

 double d=100*1.005;

  结果d的结果为100.49999999999999

  怎么解决这种问题呢,用DecimalFormat,它对double类型的进行四舍五入处理用法如下:

  

DecimalFormat df=new DecimalFormat(pattern);
  String nums=df.format(value);

  这里给pattern:".00"

  value:100*1.005

  nums值为:100.50


方法二:

    本来只知道方法一,经过别人的指点,知道了Java 非常常用用于精确计算的还有一个bigDecimal

下面是bigDecimal的一个小例子(摘)


 BigDecimal b1 = new BigDecimal(Double.toString(0.48));
 2 BigDecimal b2 = BigDecimal.valueOf(0.48);

你可能感兴趣的:(java double类型计算出现的精度问题)