java后台四舍五入,写一个或按照价格分类写三个公共的方法

 (1)0.01-99.99:在毫位上四舍五入,保留两位小数,如10.235元,处理为10.24元;10.231元,处理为10.23元。
(2)100.00-999.99:在分位上四舍五入,保留2位小数,分位上变为0。如100.35元,处理为100.40元;100.21元,处理为100.20元;100.95元,处理为101.00。
(3)1000.00以上:在角位上四舍五入,保留两位小数,分位上变为0。如1000.98元,处理为1001.00元;1000.42元,处理为1000.00元。

通过输入数值判断四舍五入的位置

 if( num>0&&num<100){
     num = Math.round(num*100)/100;//毫位
 }else if( num>=100&&num<1000){
     num = Math.round(num*10)/10;//分位
 }else if( num>1000){
     num = Math.round(num);//角位
 }
 //保留两位小数
DecimalFormat df = new DecimalFormat("#.00");
return df.format(num);

double f = 111231.5585;
BigDecimal b = new BigDecimal(f);
double f1 = b.setScale(2, RoundingMode.HALF_UP).doubleValue();
使用BigDecimal ,并且采用setScale方法来设置精确度,同时使用RoundingMode.HALF_UP表示使用最近数字舍入法则来近似计算。在这里我们可以看出BigDecimal和四舍五入是绝妙的搭配。

详细教程 http://www.cnblogs.com/chenssy/p/3366632.html

方法其实写一个就够了

//money表示要四舍五入的数,i表示在第几位四舍五入
  public Double returnMoney(Double money,int i){
    BigDecimal   b   =   new   BigDecimal(money);
    double   f1   =   b.setScale(i,   RoundingMode.HALF_UP).doubleValue();
    }
    public static void main(String[] args){
    Double money =;(前面的钱啊什么的我都不写了,主要是判断)
    if(0.01 < money<99.99){
    money = returnMoney(money,2);
    }
    .......(省略其他)
    if(money < 0 ){
    System.out.print("输入错误!")

    }
    }