Java中实现n位小数四舍五入的输出

最近遇到许多标准化输出,需要输出固定位数的小数结果。
将程序中的double值精确到小数点后n位。可以四舍五入,也可以直接截断
这里给出一些输出方式:

用到的有Java的这几个包:

 java.math.BigDecimal;
 java.math.RoundingMode;
 java.text.DecimalFormat;
 java.text.NumberFormat;

这里分为两类进行说明,一类返回为double,一类返回为String

1.返回值为double类型:

 public double decimalDouble(double number,int n){

 //其中number为要格式化输出的double类型的数,n表示保留几位小数
        //Function 01
     return Math.round(number*Math.pow(10,n))/Math.pow(10,n);

        //Function 02
        BigDecimal bg = new BigDecimal(number).setScale(n, RoundingMode.UP);
        return bg.doubleValue();

    }

2.返回值为String类型:

 public String decimalDouble(double number,int n)    {
        NumberFormat nf = NumberFormat.getNumberInstance();
        nf.setMaximumFractionDigits(n); 
        nf.setRoundingMode(RoundingMode.UP);
        return nf.format(number);
    }

最后再给出两个输出两位小数的实例:

public String decimalDouble(double number){

    //Function 01
    DecimalFormat df = new DecimalFormat("#.00");
    return df.format(d);

    //Function 02
    return String.format("%.2f", d);
}

希望上面的方法对大家有帮助,大家有其他好的方法可以留言交流。谢谢

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值