java中的四舍五入

package com.test;

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

import org.junit.Test;

/**
* java中的四舍五入
* @author hyf
* @since 1.7.5
*/
public class TestMathRound {

    @Test
    public void method1() {
        BigDecimal d = new BigDecimal(100000);// 存钱
        BigDecimal r = new BigDecimal(0.00189 * 3);// 利息

        // setScale方法来设置精确度: 2:保留的小数位 HAIL_EVEN:银行家舍入法,
        BigDecimal i = d.multiply(r).setScale(2, RoundingMode.HALF_EVEN);
        System.out.println("使用HAIL_EVEN后存入100000元后得到的利息:" + i);
    }

    @Test
    public void method2() {
        double f = 11189.2589;
        BigDecimal b = new BigDecimal(f);
        // setScale方法来设置精确度:2:保留的小数位 HALF_UP:最近数字舍入(5进)
        double f1 = b.setScale(2, RoundingMode.HALF_UP).doubleValue();
        System.out.println("使用HALF_UP后保留的数值为:" + f1);
    }

    @Test
    public void method3() {

        double f = 1198.2347;

        // 保留的小数位
        DecimalFormat df = new DecimalFormat("#.00");

        // 格式化的数字
        df.format(f);
        System.out.println("使用DecimalFormat保留的小数位格式化数值为:" + df.format(f));
    }
}

你可能感兴趣的:(java)