java 中四舍五入用哪个方法?  
  如  2.3456 ,10.236
要四舍五入到小数点后2位,要怎么做?

解决方案 »

  1.   

    public int getRound(double dSource){
    int iRound
    //BigDecimal的构造函数参数类型是double
    BigDecimal deSource = new BigDecimal(dSource);
    //deSource.setScale(0,BigDecimal.ROUND_HALF_UP) 返回值类型 BigDecimal
    //intValue() 方法将BigDecimal转化为int
    iRound= deSource.setScale(0,BigDecimal.ROUND_HALF_UP).intValue();
    return iRound;
    }
      

  2.   

    方法比较笨,请参考.
    public class test{
         public static void main(String args[]){
    System.out.println(parse(123.4513476346));
         }
         public static double parse(double num){
    double numb = 0.00;
    String s = num + "";
    String ss = s.substring(0,s.indexOf(".")+3);
    String sss = s.charAt(s.indexOf(".") + 3) + "";
    int number = Integer.parseInt(sss);
    if(number >= 5){
    numb = Double.parseDouble(ss) + 0.01; 
    String ssss = numb + "";
    ssss = ssss.substring(0,s.indexOf(".")+3);
    numb = Double.parseDouble(ssss);
    }else
    numb = Double.parseDouble(ss);
    return numb;
         }
    }
      

  3.   

    format()函数会自动帮你达到要求
      

  4.   

    Math.round(x*100)/100  --决对错误
    Math.round(x*100)/100.0--正确可以参考如下方法
    /**
         * 数字进行格式化,四舍五入
         * @param inNum
         * @param pLen 保留小数位长度
         * */
        public static double roundFormat(double inNum,int pLen){
         BigDecimal big=new BigDecimal(inNum);   
         big =big.divide(new BigDecimal(1),pLen,BigDecimal.ROUND_HALF_UP);
         return big.doubleValue();
        }