java BigDecimal 四舍五入注意

在使用BigDecimal 四舍五入注意:

Double f = 3.151605;

BigDecimal b = new BigDecimal(f);

double f1 = b.setScale(5, BigDecimal.ROUND_HALF_UP).doubleValue();

double a=BigDecimal.valueOf(f).setScale(5,   BigDecimal.ROUND_HALF_UP).doubleValue();

System.out.println(f1);

System.out.println(a);

会发现结果是:

3.1516

3.15161

并不是都是3.15161;

所以要注意使用BigDecimal.valueOf()或者new BigDecimal(f.toString()),这样才会真的四舍五入

你可能感兴趣的:(java,double)