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

Java你不了解的大數(shù)型BigInteger與BigDecimal類

 更新時(shí)間:2022年05月13日 14:15:52   作者:星辰與晨曦  
這篇文章主要介紹了Java 處理超大數(shù)類型之BigInteger與BigDecimal案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下

BigInteger類

在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í)候,不能使用 + - * /

對(duì)應(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)型。

BigDecimal類

當(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類當(dāng)中除法除不盡問題

但是在使用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再向前看。

到此這篇關(guān)于Java你不了解的大數(shù)型BigInteger與BigDecimal類的文章就介紹到這了,更多相關(guān)Java BigInteger類內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Springboot錯(cuò)誤處理機(jī)制實(shí)現(xiàn)原理解析

    Springboot錯(cuò)誤處理機(jī)制實(shí)現(xiàn)原理解析

    這篇文章主要介紹了springboot錯(cuò)誤處理機(jī)制實(shí)現(xiàn)原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Java調(diào)用SSE流式接口并流式返回給前端實(shí)現(xiàn)打字輸出效果

    Java調(diào)用SSE流式接口并流式返回給前端實(shí)現(xiàn)打字輸出效果

    在Web開發(fā)中,有時(shí)我們需要將文件以流的形式返回給前端,下面這篇文章主要給大家介紹了關(guān)于Java調(diào)用SSE流式接口并流式返回給前端實(shí)現(xiàn)打字輸出效果的相關(guān)資料,需要的朋友可以參考下
    2024-08-08
  • 如何加密配置文件里的敏感數(shù)據(jù)

    如何加密配置文件里的敏感數(shù)據(jù)

    這篇文章主要介紹了加密配置文件里的敏感數(shù)據(jù)的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Java判斷字符串是否是有效的括號(hào)(實(shí)例詳解)

    Java判斷字符串是否是有效的括號(hào)(實(shí)例詳解)

    給定一個(gè)只包括 '(',')','{','}','[',']' 的字符串 s ,判斷字符串是否有效,有效字符串需要滿足:左括號(hào)必須用相同類型的右括號(hào)閉合,這篇文章主要介紹了Java判斷字符串是否是有效的括號(hào),需要的朋友可以參考下
    2023-10-10
  • 詳解Java無需解壓直接讀取Zip文件和文件內(nèi)容

    詳解Java無需解壓直接讀取Zip文件和文件內(nèi)容

    本篇文章主要介紹了詳解Java無需解壓直接讀取Zip文件和文件內(nèi)容,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Java Web編程之Servlet技術(shù)詳解

    Java Web編程之Servlet技術(shù)詳解

    這篇文章主要為大家詳細(xì)介紹了Java Web編程之Servlet技術(shù),Servlet就是一種實(shí)現(xiàn)了Servlet接口的類,它由Web容器(Tomcat/Jetty等)負(fù)責(zé)調(diào)用并創(chuàng)建,用于接收和響應(yīng)用戶請(qǐng)求,感興趣的小伙伴們可以參考一下
    2016-05-05
  • spring快速入門實(shí)例教程

    spring快速入門實(shí)例教程

    這篇文章主要介紹了spring快速入門實(shí)例,主要分析了spring的基本配置與控制反轉(zhuǎn),對(duì)于spring的學(xué)習(xí)具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-12-12
  • Java多線程異步調(diào)用性能調(diào)優(yōu)方法詳解

    Java多線程異步調(diào)用性能調(diào)優(yōu)方法詳解

    這篇文章主要為大家詳細(xì)介紹了Java多線程異步調(diào)用性能調(diào)優(yōu),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • 基于Java實(shí)現(xiàn)XML文件的解析與更新

    基于Java實(shí)現(xiàn)XML文件的解析與更新

    配置文件可以有很多種格式,包括?INI、JSON、YAML?和?XML。每一種編程語言解析這些格式的方式都不同。本文將通過Java語言實(shí)現(xiàn)XML文件的解析與更新,需要的可以參考一下
    2022-03-03
  • 史上最全的java隨機(jī)數(shù)生成算法分享

    史上最全的java隨機(jī)數(shù)生成算法分享

    這篇文章主要介紹了史上最全的java隨機(jī)數(shù)生成算法,我分享一個(gè)最全的隨機(jī)數(shù)的生成算法,最代碼的找回密碼的隨機(jī)數(shù)就是用的這個(gè)方法
    2014-01-01

最新評(píng)論

麻栗坡县| 西乌珠穆沁旗| 关岭| 吐鲁番市| 班戈县| 银川市| 昂仁县| 长春市| 若尔盖县| 南木林县| 大方县| 汉阴县| 班玛县| 司法| 辉南县| 鲁甸县| 双柏县| 闸北区| 石泉县| 阿克| 贺兰县| 衡南县| 原平市| 阜康市| 仙居县| 射洪县| 武清区| 宁化县| 萨嘎县| 囊谦县| 革吉县| 南雄市| 哈巴河县| 富阳市| 扶风县| 乌拉特中旗| 洪洞县| 武乡县| 石门县| 枣庄市| 怀化市|