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(); }