java取模多位数_JAVA大数类—基础操作(加减乘除、取模、四舍五入、设置保留位数)...
當基礎(chǔ)數(shù)據(jù)類型長度無法滿足需求時可以使用大數(shù)類
構(gòu)造方法接受字符串為參數(shù)
1 BigInteger bInt = new BigInteger("123123");2 BigDecimal bDouble = new BigDecimal("123123.123123124");
基礎(chǔ)操作(取模使用divideAndRemainder方法,返回的數(shù)組第二個元素為余數(shù)):
BigDecimal在做除法時必須設(shè)定傳入精度(保留多少位小數(shù)),否則會出現(xiàn)異常:java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result。
除法還有兩個接受不同數(shù)量參數(shù)的方法:
接受兩個參數(shù)的方法:
@param divisor value by which this {@code BigDecimal} is to be divided.?傳入除數(shù)
@param roundingMode rounding mode to apply. 傳入round的模式
三個參數(shù)的方法:
@param divisor value by which this {@code BigDecimal} is to be divided. 傳入除數(shù)
@param scale scale of the {@code BigDecimal} quotient to be returned. 傳入精度
@param roundingMode rounding mode to apply. 傳入round的模式
round模式為小數(shù)取舍模式:
BigDecimal.ROUND_UP:最后一位如果大于0,則向前進一位,正負數(shù)都如此。
BigDecimal.ROUND_DOWN:最后一位不管是什么都會被舍棄。
BigDecimal.ROUND_CEILING:如果是正數(shù),按ROUND_UP處理;如果是負數(shù),按照ROUND_DOWN處理。例如,7.1->8;-7.1->-7。所以,這種近似的結(jié)果都會>=實際值。
BigDecimal.ROUND_FLOOR:跟BigDecimal_ROUND_CEILING相反。例如,7.1->7;-7.1->-8。這種處理的結(jié)果<=實際值。
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:如果倒數(shù)第二位是奇數(shù),按照BigDecimal.ROUND_HALF_UP處理;如果是偶數(shù),按照BigDecimal.ROUND_HALF_DOWN來處理。如,7.5->8;8.5->8;7.4->7;-7.5->-8。
BigDecimal有一個setScale()方法,可以接受兩個參數(shù)
1、保留位數(shù)
2、round模式
輸出可以直接調(diào)用.toString();
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的java取模多位数_JAVA大数类—基础操作(加减乘除、取模、四舍五入、设置保留位数)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 兄弟打印机内存已满清零方法_兄弟打印机全
- 下一篇: 小草客户端android2.2.4 g,