【转】Java保留固定小数位的4种方法

package com.test;

import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.NumberFormat;
public class Main {
    /**
     * 测试用例为保留8位
     * */
    double f = 1234.1234567898789;
    /**
     * 由于 BigDecimal 对象是不可变的,此方法的调用不会 导致初始对象被修改;
     * newScale - 要返回的 BigDecimal 值的标度;
     * roundingMode - 要应用的舍入模式;
     * ROUND_HALF_UP 舍入模式为四舍五入;
     * */
    public void method_01() {
        BigDecimal bg = new BigDecimal(f);
        double f1 = bg.setScale(8, BigDecimal.ROUND_HALF_UP).doubleValue();
        System.out.println(f1);
    }
    /**
     * DecimalFormat转换最简便
     */
    public void method_02() {
        DecimalFormat df = new DecimalFormat("#.00000000");
        System.out.println(df.format(f));
    }
    /**
     * String.format打印最简便
     */
    public void method_03() {
        System.out.println(String.format("%.8f", f));
    }
    public void method_04() {
        NumberFormat nf = NumberFormat.getNumberInstance();
        nf.setMaximumFractionDigits(8);
        System.out.println(nf.format(f));
    }
    public static void main(String[] args) {
        Main test = new Main();
        test.method_01();
        test.method_02();
        test.method_03();
        test.method_04();
    }
}
结果:
1234.12345679 1234.12345679 1234.12345679 1,234.12345679

 

posted @ 2013-11-02 10:51  谢佳东/馨予希  阅读(656)  评论(0编辑  收藏  举报