JAVA [BigDecimal]

/**
     * java.math.MathContext
     * 该对象是封装上下文设置的不可变对象,它描述数字运算符的某些规则
     * 基本独立设置为:
     *     precision:某个操作使用的数字个数;结果舍入到此精度
     *     roundingMode:一个 RoundingMode 对象,该对象指定舍入使用的算法。
     */

    public static void MathContextTest(){
        
    }


/**

     * java.math.BigDecimal
     * 不可变的、任意精度的有符号十进制数
     * 由任意精度的整数非标度值32 位的整数标度 (scale) 组成
     * 提供以下操作:算术、标度操作、舍入、比较、哈希算法和格式转换
     */

    public static void BigDecimalTest(){
        System.out.println(BigDecimal.class);
        System.out.println(BigDecimal.ROUND_CEILING);
        System.out.println(BigDecimal.ROUND_FLOOR);
        System.out.println(BigDecimal.ROUND_DOWN);
        System.out.println(BigDecimal.ROUND_UP);
        System.out.println(BigDecimal.ROUND_HALF_DOWN);
        System.out.println(BigDecimal.ROUND_HALF_EVEN);
        System.out.println(BigDecimal.ROUND_HALF_UP);

       

//初始化

        System.out.println(new BigDecimal(new BigInteger("-123456")));
        System.out.println(new BigDecimal(-123456.8));
         //需要精确计算,非要用String来够造BigDecimal不可
        System.out.println(new BigDecimal("-123456.6"));
        System.out.println(new BigDecimal(new char[]{'2','4'}));
        System.out.println(new BigDecimal(new char[]{'2','4','3','9'},1,2));
        
        //int 标度
        System.out.println(new BigDecimal(new BigInteger("-123456"), 5));
         //根据上下文设置进行舍入
        System.out.println(new BigDecimal(new BigInteger("-123456"), 5, new MathContext(3, RoundingMode.UP)));
        System.out.println(new BigDecimal(123456.8, new MathContext(3, RoundingMode.HALF_DOWN)));
        System.out.println(new BigDecimal(123456, new MathContext(3, RoundingMode.CEILING)));
        System.out.println(new BigDecimal("123456", new MathContext(3, RoundingMode.DOWN)));
        System.out.println(new BigDecimal(123456.8, new MathContext(3, RoundingMode.FLOOR)));
        System.out.println(new BigDecimal(123456.8, new MathContext(3, RoundingMode.HALF_EVEN)));
        System.out.println(new BigDecimal(123456.8, new MathContext(3, RoundingMode.HALF_UP)));
        System.out.println(new BigDecimal(123456.8, new MathContext(3, RoundingMode.UP)));
        System.out.println(new BigDecimal(123456.8, new MathContext(3, RoundingMode.UP)).toPlainString());
        System.out.println(new BigDecimal(123456.8, new MathContext(3, RoundingMode.UP)).toEngineeringString());
        
        DecimalFormat df = new DecimalFormat("#.##");
        System.out.println(df.format(new BigDecimal(123456.856)));
        

    }


******************************************************************************************\

class java.math.BigDecimal
2
3
1
0
5
6
4
-123456
-123456.800000000002910383045673370361328125
-123456.6
24
43
-1.23456
-1.24
1.23E+5
1.24E+5
1.23E+5
1.23E+5
1.23E+5
1.23E+5
1.24E+5
124000
124E+3
123456.86



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值