比较好使用的两种方式:

第一种方式是使用java.text.DecimalFormat类来实现:

如DecimalFormat df = new DecimalFormat("#.##");
               double d = 1.100000001;
               System.out.println(df.format(d));

           结果是:1.10

第二种方式是使用java.math.BigDecimal

BigDecimal   bd   =   new   BigDecimal(“1.00100010”);
    bd   =   bd.setScale(2,BigDecimal.ROUND_HALF_UP);//相当于四舍五入保留小数点后2位


注:

public BigDecimal setScale(int newScale,int roundingMode)

BigDecimal,其标度为指定值,其非标度值通过此 BigDecimal 的非标度值乘以或除以十的适当次幂来确定,以维护其总值。如果该操作减少标度,则非标度值必须被除(而不是乘),并且该值可以更改;在这种情况下,将指定的舍入模式应用到除法中。

注意,由于 BigDecimal 对象是不可变的,此方法的调用不会 导致初始对象被修改,这与使用名为 setX 变异字段 X 方法的常规约定相反。相反,setScale



结果是:1.00