精确小数点后多少位的四种方法

代码:

package com.jc.test;

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

/**
 * 精确小数点后多少位的四种方法
 * @author wang-xiaoming
 *
 */
public class TestPrecision {
    public static void main(String[] args) {
        double pi = Math.PI;
        
        // 方法一:调用decimalFormat
        DecimalFormat df = new DecimalFormat(".00");
        System.out.println("decimalFormat.format(): " + df.format(pi));
        
        // 方法二:调用String类的format函数
        System.out.println("string.format(): " + String.format("%.2f", pi));
        
        // 方法三:调用bigDecimal
        BigDecimal bd = BigDecimal.valueOf(pi);
        pi = bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
        System.out.println("bigDecimal.doubleValue(): " + pi);
        
        // 方法四:调用numberFormat
        NumberFormat nf = NumberFormat.getNumberInstance();
        nf.setMaximumFractionDigits(2);
        System.out.println("numberFormat.format(): " + nf.format(pi));
    }
}

结果:

decimalFormat.format(): 3.14
string.format(): 3.14
bigDecimal.doubleValue(): 3.14
numberFormat.format(): 3.14

猜你喜欢

转载自www.cnblogs.com/huakaiyoushi/p/12010507.html