本文小編為大家詳細(xì)介紹“Java的大數(shù)型BigInteger與BigDecimal類怎么使用”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“Java的大數(shù)型BigInteger與BigDecimal類怎么使用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。
創(chuàng)新互聯(lián)公司是一家專業(yè)提供芝罘企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站建設(shè)、成都做網(wǎng)站、成都h5網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為芝罘眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。
在Java當(dāng)中,是有許多數(shù)字要進(jìn)行處理的類,比如Integer類,但是Integer類它也是有上限的。它的最大值就是到2^31-1.
如果我們此時(shí)想要表示更大的數(shù),那就用Integer是無法表示的了,所在在Java當(dāng)中提供了BigInteger類。
BigInteger類支持的數(shù)字可以說是無限大的,且支持任意精度的整數(shù),也就是說他可以準(zhǔn)確的表示任意數(shù)值而不會(huì)產(chǎn)生丟失的。
在這里也強(qiáng)調(diào)一下,因?yàn)閭魅氲臄?shù)型是字符型,所以在做運(yùn)算的時(shí)候,不能使用 + - * /
對應(yīng)的就是使用它們的方法:
add(),subtract(),multiply(),divide()
還有一些常用方法:
equals方法。進(jìn)行比較
代碼演示一下:
import java.math.BigInteger;
public class Demo01 {
    public static void main(String[] args) {
        BigInteger bigInteger1 = new BigInteger("2222222222222222222222222222222");
        BigInteger bigInteger2 = new BigInteger("1111111111111111111111111111111");
        System.out.println("bigInteger1大數(shù)為:" + bigInteger1);
        System.out.println("bigInteger2大數(shù)為:" + bigInteger2);
        System.out.println("兩個(gè)大數(shù)相加:" + bigInteger1.add(bigInteger2));//加
        System.out.println("兩個(gè)大數(shù)相減:" + bigInteger1.subtract(bigInteger2));//減
        System.out.println("兩個(gè)大數(shù)相乘:" + bigInteger1.multiply(bigInteger2));//乘
        System.out.println("兩個(gè)大數(shù)相除:" + bigInteger1.divide(bigInteger2));//除
        System.out.println("兩個(gè)大數(shù)相比:" + bigInteger1.equals(bigInteger2));//equals進(jìn)行比較
    }
}
在做除法的時(shí)候,如果有小數(shù)位,是這接截取掉小數(shù)位。
當(dāng)然這方面不僅僅有有整型的,也有浮點(diǎn)型。
當(dāng)然浮點(diǎn)型的精度也是可以盡可能大的。
import java.math.BigDecimal;
public class Demo02 {
    public static void main(String[] args) {
        BigDecimal bigDecimal1 = new BigDecimal("12232423432432.53241234324");
        BigDecimal bigDecimal2 = new BigDecimal("2.0");
        System.out.println("bigDecimal1值: " + bigDecimal1);
        System.out.println("bigDecimal2值: " + bigDecimal2);
        System.out.println("加:" + bigDecimal1.add(bigDecimal2));
        System.out.println("減:" + bigDecimal1.subtract(bigDecimal2));
        System.out.println("乘:" + bigDecimal1.multiply(bigDecimal2));
        System.out.println("除:" + bigDecimal1.divide(bigDecimal2));
    }
}
在BigDecimal的方法里面,也更好的解決java語言里面的精度問題(比如出現(xiàn)0.1x3 == 0.3的結(jié)果為false的問題)

但是在使用BigDecimal的時(shí)候也有一個(gè)點(diǎn)需要注意一下(當(dāng)遇到不能除凈的話,它會(huì)選擇報(bào)錯(cuò)的。)

所以在做除法的時(shí)候,直接給它做一個(gè)截取位數(shù)就好。
先來看一個(gè)方法:
public BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)
divisor - 除數(shù)。
scale - 小數(shù)點(diǎn)后保留幾位
roundingMode - 選擇舍入模式
所以我們就可以將它寫成這樣:

舍入模式選擇:
| 模式 | 意思 | 
|---|---|
| ROUND_CEILING | 向正無窮取數(shù) | 
| ROUND_DOWN | 向0取數(shù) | 
| ROUND_FLOOR | 向負(fù)無窮取數(shù) | 
| ROUND_HALF_DOWN | 四舍五入遇到 .5向下取數(shù) | 
| ROUND_HALF_UP | 四舍五入遇到 .5向上取數(shù) | 
| ROUND_HALF_EVEN | 四舍五入遇到5看前面的數(shù),大于5向上,小于5向下,等于5再向前看。 | 
讀到這里,這篇“Java的大數(shù)型BigInteger與BigDecimal類怎么使用”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
                分享名稱:Java的大數(shù)型BigInteger與BigDecimal類怎么使用
                
                本文網(wǎng)址:http://chinadenli.net/article30/gspcso.html
            
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊、網(wǎng)站營銷、自適應(yīng)網(wǎng)站、軟件開發(fā)、App開發(fā)、網(wǎng)頁設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)