BigDecimalTest


BigDecimalTest

public class BigDecimalTest {

    public static void roundFour() {
        double f = 10.2345;
        BigDecimal b0 = new BigDecimal(f);
        BigDecimal b1 = new BigDecimal(f);
        BigDecimal b2 = new BigDecimal(f);
        BigDecimal b3 = new BigDecimal(f);
        BigDecimal b4 = new BigDecimal(f);
        BigDecimal b5 = new BigDecimal(f);
        BigDecimal b6 = new BigDecimal(f);
        BigDecimal b7 = new BigDecimal("10.2345");

        double f0 = b0.setScale(3, BigDecimal.ROUND_UP).doubleValue();
        double f1 = b1.setScale(3, BigDecimal.ROUND_DOWN).doubleValue();
        double f2 = b2.setScale(3, BigDecimal.ROUND_CEILING).doubleValue();
        double f3 = b3.setScale(3, BigDecimal.ROUND_FLOOR).doubleValue();
        double f4 = b4.setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue();
        double f5 = b5.setScale(3, BigDecimal.ROUND_HALF_DOWN).doubleValue();
        double f6 = b6.setScale(3, BigDecimal.ROUND_HALF_EVEN).doubleValue();
        double f7 = b7.setScale(4, BigDecimal.ROUND_UNNECESSARY).doubleValue();

        System.out.println(f + "使用  远离零方向舍入(ROUND_UP)方式四舍五入结果为:" + f0);
        System.out.println(f + "使用  趋向零方向舍入(ROUND_DOWN)方式四舍五入结果为:" + f1);
        System.out.println(f + "使用  向正无穷方向舍入(ROUND_CEILING)方式四舍五入结果为:" + f2);
        System.out.println(f + "使用  向负无穷方向舍入(ROUND_FLOOR)方式四舍五入结果为:" + f3);
        System.out.println(f + "使用  最近数字舍入(5进)(ROUND_HALF_UP)方式四舍五入结果为:" + f4);
        System.out.println(f + "使用  最近数字舍入(5舍)(ROUND_HALF_DOWN)方式四舍五入结果为:" + f5);
        System.out.println(f + "使用  银行家舍入法(ROUND_HALF_EVEN)方式四舍五入结果为:" + f6);
        System.out.println(f + "使用  不需要舍入模式(ROUND_UNNECESSARY)方式结果为:" + f7);
    }
    
    public static void main(String[] args) {
        BigDecimalTest.roundFour();
    }