编写类MathTool,该类包含两个数字的精确的加减乘除和四舍五入的静态方法。加的方法头如下:
public double add(double d1, double d2, int scale) //scale代表小数的位数,结果四舍五入。public double add(double d1, double d2) //没有scale,默认值为3。编写用户程序对加减乘除和四舍五入进行测试。

解决方案 »

  1.   

    给你一个四舍五入的。
    int temp = 1;
    (int)(temp + o.5)
      

  2.   


    public class Test { public static void main(String[] args) {
    System.out.println(add(1.0023D,2.03032,3));
    System.out.println(subtract(1.0023D,2.03032,3));
    System.out.println(multiply(1.0023D,2.03032,3));
    System.out.println(divide(40,3,3));
    }
    public static double add(double d1, double d2, int scale){
    BigDecimal b1 = new BigDecimal(d1);
    String totStr = b1.add(new BigDecimal(d2)).toString();
    int index = totStr.indexOf(".");
    return b1.add(new BigDecimal(d2), new MathContext(scale + index, RoundingMode.HALF_UP)).doubleValue();
    }
    public static double subtract(double d1, double d2, int scale){
    BigDecimal b1 = new BigDecimal(d1);
    String totStr = b1.subtract(new BigDecimal(d2)).toString();
    int index = totStr.indexOf(".");
    return b1.subtract(new BigDecimal(d2), new MathContext(scale + index, RoundingMode.HALF_UP)).doubleValue();
    }
    public static double multiply(double d1, double d2, int scale){
    BigDecimal b1 = new BigDecimal(d1);
    String totStr = b1.multiply(new BigDecimal(d2)).toString();
    int index = totStr.indexOf(".");
    return b1.multiply(new BigDecimal(d2), new MathContext(scale + index, RoundingMode.HALF_UP)).doubleValue();
    }
    public static double divide(double d1, double d2, int scale){
    BigDecimal b1 = new BigDecimal(d1);
    return b1.divide(new BigDecimal(d2), scale, RoundingMode.HALF_UP).doubleValue();
    }
    }