最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaAPI中BigInteger、BigDecimal的使用方法及應(yīng)用

 更新時(shí)間:2024年11月05日 11:43:07   作者:在下小吉.  
這篇文章主要給大家介紹了關(guān)于JavaAPI中BigInteger、BigDecimal的使用方法及應(yīng)用,BigInteger是Java中用于表示任意大小整數(shù)的類(lèi),它提供了加、減、乘、除等多種運(yùn)算方法,適用于大整數(shù)處理和高精度計(jì)算場(chǎng)景,需要的朋友可以參考下

BigInteger

BigInteger 是 Java 中的一個(gè)類(lèi),用于表示任意大小的整數(shù)。與基本數(shù)據(jù)類(lèi)型 int 或 long 不同,BigInteger 沒(méi)有固定的范圍,可以表示非常大的整數(shù)值。

BigInteger 類(lèi)提供了許多方法來(lái)進(jìn)行整數(shù)的運(yùn)算,包括加法、減法、乘法、除法、取余等。它還支持比較、位操作、冪運(yùn)算等功能。

BigInteger 類(lèi)的優(yōu)點(diǎn)是可以準(zhǔn)確地表示和計(jì)算任意大小的整數(shù),而不會(huì)出現(xiàn)溢出的情況。這對(duì)于處理大整數(shù)、加密算法、密碼學(xué)等領(lǐng)域非常有用。

但需要注意的是,由于 BigInteger 是一個(gè)對(duì)象,而不是基本數(shù)據(jù)類(lèi)型,因此在使用時(shí)需要進(jìn)行對(duì)象的創(chuàng)建和方法調(diào)用,會(huì)導(dǎo)致一定的性能損失。在處理一般大小的整數(shù)時(shí),可以使用基本數(shù)據(jù)類(lèi)型 int 或 long 來(lái)獲得更高的性能。

總之,BigInteger 是用于處理任意大小整數(shù)的類(lèi),適用于需要高精度計(jì)算或處理非常大整數(shù)值的場(chǎng)景。

獲取BigInteger對(duì)象

獲取一個(gè)隨機(jī)的大整數(shù)

Random random=new Random();
BigInteger bigInteger=new BigInteger(number,random);

表示返回0 ~ 2^number-1之間的一個(gè)整數(shù)

獲取指定的大整數(shù)

BigInteger bigInteger=new BigInteger(number);

注意

只能是獲取整數(shù),不能獲取小數(shù)或者字母

獲取指定進(jìn)制的大整數(shù)

BigInteger bigInteger=new BigInteger(number,進(jìn)制);

注意

  • 進(jìn)制與number一定要吻合,比如設(shè)置為二進(jìn)制時(shí),number必須為0和1組成的數(shù)(例如100,123就不行)
  • 數(shù)字不能是小數(shù)

靜態(tài)方法獲取BigInteger的對(duì)象,內(nèi)部有優(yōu)化

注意

???‍??能表示的范圍比較小,在long的取值范圍之內(nèi),超出long的范圍就不行了
long的最大值是9223372036854775807

但是如果換成了下面這一種方式,就不會(huì)報(bào)錯(cuò)

證明了靜態(tài)方法獲取BigInteger的對(duì)象的范圍比較小

???‍??在內(nèi)部,對(duì)數(shù)字-16~16進(jìn)行了優(yōu)化

提前把-16~16先創(chuàng)建好BigInteger的對(duì)象,如果多次獲取,不會(huì)創(chuàng)建新的對(duì)象

在這里插入圖片描述

???‍??對(duì)象一旦創(chuàng)建,內(nèi)部的數(shù)據(jù)就不能發(fā)生變化

只要計(jì)算,就會(huì)產(chǎn)生新的對(duì)象

BigInteger常見(jiàn)成員方法

加減乘

獲取商

BigInteger resault=bigInteger1.divide(bigInteger2);

獲取商和余數(shù)

BigInteger[] arr=bigInteger1.divideAndRemainder(bigInteger2);

比較是否相同

次冪

獲取較大值

變?yōu)閘ong類(lèi)型的整數(shù)

總結(jié)

BigDecimal

在編程中,特別是在處理金融、貨幣、精確計(jì)算等領(lǐng)域,使用 BigDecimal 進(jìn)行運(yùn)算可以提供更準(zhǔn)確的結(jié)果。這是因?yàn)?BigDecimal 類(lèi)在內(nèi)部使用了任意精度的定點(diǎn)數(shù)表示法,可以表示和計(jì)算非常大或非常小的數(shù)值,同時(shí)保持高精度。

相比之下,其他數(shù)據(jù)類(lèi)型(如 float 或 double)使用浮點(diǎn)數(shù)表示法,其在表示和計(jì)算過(guò)程中存在精度限制和舍入誤差。這是因?yàn)楦↑c(diǎn)數(shù)使用有限的二進(jìn)制位表示小數(shù),無(wú)法準(zhǔn)確表示某些十進(jìn)制數(shù)。這可能導(dǎo)致在進(jìn)行精確計(jì)算時(shí)出現(xiàn)舍入錯(cuò)誤或不精確的結(jié)果。

然而,需要注意的是,由于 BigDecimal 在內(nèi)存使用和計(jì)算速度方面較 float 或 double 更為消耗資源,因此在處理大量數(shù)據(jù)或需要高性能的場(chǎng)景下,需要權(quán)衡精度和性能之間的取舍。

通過(guò)傳遞字符串表示的數(shù)字來(lái)創(chuàng)建對(duì)象

通過(guò)靜態(tài)方法獲取對(duì)象

注意

  • 如果要表示的數(shù)字不大,沒(méi)有超出double的取值范圍,建議使用靜態(tài)方法
  • 如果要表示的數(shù)字比較大,超出了double的取值范圍,建議使用構(gòu)造方法
  • 如果我們傳遞的是0~10之間的整數(shù),包含0,包含10,那么方法會(huì)返回已經(jīng)創(chuàng)建好的對(duì)象,不會(huì)重新new

加減乘

精確模式

public BigDecimal divide(BigDecimal val,精確幾位,舍入模式);

ctrl+p可以看有什么參數(shù)

總結(jié)

到此這篇關(guān)于JavaAPI中BigInteger、BigDecimal的使用方法及應(yīng)用的文章就介紹到這了,更多相關(guān)JavaAPI BigInteger、BigDecimal使用方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot2入門(mén)自動(dòng)配置原理及源碼分析

    SpringBoot2入門(mén)自動(dòng)配置原理及源碼分析

    這篇文章主要為大家介紹了SpringBoot2入門(mén)自動(dòng)配置原理及源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • 關(guān)于Java繼承中父類(lèi)和子類(lèi)構(gòu)造函數(shù)的問(wèn)題

    關(guān)于Java繼承中父類(lèi)和子類(lèi)構(gòu)造函數(shù)的問(wèn)題

    這篇文章主要介紹了關(guān)于Java繼承中父類(lèi)和子類(lèi)構(gòu)造函數(shù)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-10-10
  • Maven中錯(cuò)誤使用parent.relativePath導(dǎo)致構(gòu)建失敗問(wèn)題

    Maven中錯(cuò)誤使用parent.relativePath導(dǎo)致構(gòu)建失敗問(wèn)題

    這篇文章主要介紹了Maven中錯(cuò)誤使用parent.relativePath導(dǎo)致構(gòu)建失敗問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • SpringBoot集成quartz實(shí)現(xiàn)定時(shí)任務(wù)詳解

    SpringBoot集成quartz實(shí)現(xiàn)定時(shí)任務(wù)詳解

    最為常用定時(shí)任務(wù)框架是Quartz,并且Spring也集成了Quartz的框架,Quartz不僅支持單實(shí)例方式還支持分布式方式。本文主要介紹Quartz,基礎(chǔ)的Quartz的集成案例本,以及實(shí)現(xiàn)基于數(shù)據(jù)庫(kù)的分布式任務(wù)管理和控制job生命周期
    2022-08-08
  • MyEclipse到期破解代碼分享

    MyEclipse到期破解代碼分享

    前幾天有個(gè)小伙伴咨詢(xún),使用的時(shí)候一直說(shuō)myeclipse已過(guò)期,需要購(gòu)買(mǎi),如何解決?可以去網(wǎng)上搜搜注冊(cè)碼,但作為程序猿這么做簡(jiǎn)直太無(wú)趣,看看我們自己來(lái)解決這個(gè)問(wèn)題
    2014-11-11
  • VSCode?Java項(xiàng)目JDK配置完整攻略指南(JDK版本切換不求人)

    VSCode?Java項(xiàng)目JDK配置完整攻略指南(JDK版本切換不求人)

    JDK是指Java軟件開(kāi)發(fā)工具包,是Java編程語(yǔ)言的官方實(shí)現(xiàn),由Oracle公司提供,不斷更新和維護(hù),這篇文章主要介紹了VSCode Java項(xiàng)目JDK配置(JDK版本切換不求人)的相關(guān)資料,需要的朋友可以參考下
    2026-05-05
  • Java安全后端返回文件流方式

    Java安全后端返回文件流方式

    這篇文章主要介紹了Java安全后端返回文件流方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 淺談java基本數(shù)據(jù)類(lèi)型的范圍(分享)

    淺談java基本數(shù)據(jù)類(lèi)型的范圍(分享)

    下面小編就為大家?guī)?lái)一篇淺談java基本數(shù)據(jù)類(lèi)型的范圍(分享)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-10-10
  • springboot引用kettle實(shí)現(xiàn)對(duì)接oracle數(shù)據(jù)的示例代碼

    springboot引用kettle實(shí)現(xiàn)對(duì)接oracle數(shù)據(jù)的示例代碼

    這篇文章主要介紹了springboot引用kettle實(shí)現(xiàn)對(duì)接oracle數(shù)據(jù),其實(shí)kettle集成到springboot里面沒(méi)有多少代碼,這個(gè)功能最主要的還是ktr文件的編寫(xiě),只要ktr編寫(xiě)好了,放到指定文件夾下,寫(xiě)個(gè)定時(shí)任務(wù)就完事了,需要的朋友可以參考下
    2022-12-12
  • springboot集成CAS實(shí)現(xiàn)單點(diǎn)登錄的示例代碼

    springboot集成CAS實(shí)現(xiàn)單點(diǎn)登錄的示例代碼

    這篇文章主要介紹了springboot集成CAS實(shí)現(xiàn)單點(diǎn)登錄的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06

最新評(píng)論

湖南省| 沾化县| 沐川县| 荣昌县| 伊金霍洛旗| 苏州市| 仁布县| 海淀区| 凉城县| 旌德县| 红安县| 云安县| 泊头市| 利辛县| 修水县| 武宁县| 福州市| 来安县| 临江市| 左权县| 商洛市| 兴宁市| 醴陵市| 浮梁县| 临西县| 宕昌县| 磐安县| 肃北| 长沙县| 鲜城| 平湖市| 元谋县| 疏附县| 泰和县| 秀山| 馆陶县| 惠东县| 阜康市| 万宁市| 盐源县| 汉源县|