/**
 * 保留小数
 * int num -小数位数
 * double value 数字
 */
public double changeDecimal(int num,double value){
BigDecimal b= new BigDecimal(value);
double v=b.setScale(num, BigDecimal.ROUND_HALF_UP).doubleValue();// 表明四舍五入,保留两位小数
return v;
}

解决方案 »

  1.   

    import java.text.NumberFormat; ...
    NumberFormat nf=NumberFormat.getInstance();
    nf.setMaximumFractionDigits(2);
    num=nf.format(yourdoublenumber);
      

  2.   

    Math.round(double);
    import java.math.*;public class x
    {
    public static void main(String[] args)
    {
    double a=1.6;
    double b=1.3;
    System.out.println(Math.round(a));
    System.out.println(Math.round(b));
    }
    }
      

  3.   

    public class roundTest {
      public roundTest() {  }
      public static void main(String[] args) {
        double dd=1.89*0.85;
        roundTest test=new roundTest();
        System.out.println("==="+test.round(dd,2));
      }  double round(double d,int i){
        double dd=Math.round(d*Math.pow(10.0,i))/Math.pow(10.0,i);
        return dd;
      }}
      

  4.   

    import java.text.NumberFormat;public class roundTest {
      public roundTest() {  }
      public static void main(String[] args) {
        double dd=1.89*0.85;
        roundTest test=new roundTest();
        //================================================
        System.out.println("dd="+dd);
        System.out.println("test.round2(dd,2)="+test.round2(dd,2));
        //================================================
        System.out.println("test.round(dd,2)="+test.round(dd,2));
        //================================================
      }  double round(double d,int i){
        double dd=Math.round(d*Math.pow(10.0,i))/Math.pow(10.0,i);
        return dd;
      }  double round2(double dd,int i){
        NumberFormat nf=NumberFormat.getInstance();
        nf.setMaximumFractionDigits(i);
        double num=Double.valueOf(nf.format(dd)).doubleValue();
        return num;  }}
      

  5.   

    import java.util.*;
    import java.math.BigDecimal;
    import java.io.* ;
             /**
     * 保留小数
     * int num -小数位数
     * double value 数字
     */
    public double changeDecimal(int num,double value){
    BigDecimal b= new BigDecimal(value);
    double v=b.setScale(num, BigDecimal.ROUND_HALF_UP).doubleValue();// 表明四舍五入,保留两位小数
    return v;
    }