JAVA⼤数类—基础操作(加减乘除、取模、四舍五⼊、设置保
留位数)
当基础数据类型长度⽆法满⾜需求时可以使⽤⼤数类
构造⽅法接受字符串为参数
1 BigInteger bInt = new BigInteger("123123");
2 BigDecimal bDouble = new BigDecimal("123123.123123124");
基础操作(取模使⽤divideAndRemainder⽅法,返回的数组第⼆个元素为余数):
BigDecimal在做除法时必须设定传⼊精度(保留多少位⼩数),否则会出现异常:java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result。
除法还有两个接受不同数量参数的⽅法:
接受两个参数的⽅法:
@param divisor value by which this {@code BigDecimal} is to be divided. 传⼊除数
@param roundingMode rounding mode to apply. 传⼊round的模式
三个参数的⽅法:
@param divisor value by which this {@code BigDecimal} is to be divided. 传⼊除数
@param scale scale of the {@code BigDecimal} quotient to be returned. 传⼊精度
@param roundingMode rounding mode to apply. 传⼊round的模式
round模式为⼩数取舍模式:
BigDecimal.ROUND_UP:最后⼀位如果⼤于0,则向前进⼀位,正负数都如此。
BigDecimal.ROUND_DOWN:最后⼀位不管是什么都会被舍弃。
bigdecimal除法保留小数 BigDecimal.ROUND_CEILING:如果是正数,按ROUND_UP处理;如果是负数,按照ROUND_DOWN处理。例如,7.1->8;-7.1->-7。所以,这种近似的结果都会>=实际值。
BigDecimal.ROUND_FLOOR:跟BigDecimal_ROUND_CEILING相反。例如,7.1->7;-7.1->-8。这种处理的结果<=实际值。
BigDecimal.ROUND_HALF_DOWN:如果最后⼀位<=5则舍弃,如果>5,向前进⼀位。如,7.5->7;7.6->8;-7.5->-7 。
BigDecimal.ROUND_HALF_UP:如果最后⼀位<5则舍弃,如果>=5,向前进⼀位。反之舍弃。如,7.5->8;7.4->7;-7.5->-8 。 —> (四舍五⼊)常⽤
BigDecimal.ROUND_HALF_EVEN:如果倒数第⼆位是奇数,按照BigDecimal.ROUND_HALF_UP处理;如果是偶数,按照BigDecimal.ROUND_HALF_DOWN来处理。如,7.5->8;8.5->8;7.4->7;-7.5->-8。
BigDecimal有⼀个setScale()⽅法,可以接受两个参数
1、保留位数
2、round模式
输出可以直接调⽤.toString();
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论