Java - BigInteger & BigDecimal

BigInteger & BigDecimal

  • 超过long类型的整数用BigInteger
  • 超过Double类型的浮点数用BigDecimal
  • 用速度换精确度。

BigInteger

/*
    java.math.BigInteger类: 代表超级大的整数,不可变的任意精度的整数。
    1.构造方法:
	   参数: 必须是String类型的数字,内部不能出现非数字内容
        public BigInteger(String val) {
            this(val, 10);
        }

    2.常用方法:
        // +
        public BigInteger add(BigInteger val):
		// -
        public BigInteger subtract(BigInteger val):
		// *
        public BigInteger multiply(BigInteger val):
		// /
        public BigInteger divide(BigInteger val):
*/

廖雪峰 BigInteger

  • BigInteger -> 基本类型时可以用XXXValueExact()
BigInteger b = new BigInteger("12");
b.shortValueExact();
b.byteValueExact();
b.intValueExact();
b.longValueExact();
  • 如果超出了转换类型的范围,会抛出 ArithmeticException

BigDecimal

廖雪峰BigDecimal

/*
    java.math.BigDecimal类: 代表超级大的小数,不可变的任意精度的小数。
    1.构造方法:
        public BigDecimal(String val): 
        	作用: 把构造方法参数String类型的val,转换成BigDecimal类的对象
            参数: 必须是String类型的数字,内部不能出现非数字内容
    2.常用方法:
        + - * 运算和BigInteger一样

        / 需要注意,可能会出现 无限循环/无限不循环的结果,需要提供保留几位小数
        public BigDecimal divide(BigDecimal divisor, int scale, int roundingMode):
        参数:
        int scale: 要保留几位小数
        int roundingMode: 如何保留小数
        BigDecimal.ROUND_UP 向上加1。
        BigDecimal.ROUND_DOWN 直接舍去。
        BigDecimal.ROUND_HALF_UP 四舍五入。
*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值