欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

BigInteger類

在Java當(dāng)中,是有許多數(shù)字要進(jìn)行處理的類,比如Integer類,但是Integer類它也是有上限的。它的最大值就是到2^31-1.

如果我們此時(shí)想要表示更大的數(shù),那就用Integer是無(wú)法表示的了,所在在Java當(dāng)中提供了BigInteger類。

BigInteger類支持的數(shù)字可以說(shuō)是無(wú)限大的,且支持任意精度的整數(shù),也就是說(shuō)他可以準(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語(yǔ)言里面的精度問(wèn)題(比如出現(xiàn)0.1x3 == 0.3的結(jié)果為false的問(wèn)題)

BigDecimal類當(dāng)中除法除不盡問(wèn)題

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

所以在做除法的時(shí)候,直接給它做一個(gè)截取位數(shù)就好。

先來(lái)看一個(gè)方法:

public BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)

divisor - 除數(shù)。

scale - 小數(shù)點(diǎn)后保留幾位

roundingMode - 選擇舍入模式

所以我們就可以將它寫(xiě)成這樣:

舍入模式選擇:

模式意思
ROUND_CEILING向正無(wú)窮取數(shù)
ROUND_DOWN向0取數(shù)
ROUND_FLOOR向負(fù)無(wú)窮取數(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)文章

  • Java計(jì)算球從100米高度自由落下問(wèn)題

    Java計(jì)算球從100米高度自由落下問(wèn)題

    這篇文章主要介紹了Java球從100米高度自由落下問(wèn)題,需要的朋友可以參考下
    2017-02-02
  • SpringBoot 普通類調(diào)用Bean對(duì)象的一種方式推薦

    SpringBoot 普通類調(diào)用Bean對(duì)象的一種方式推薦

    這篇文章主要介紹了SpringBoot 普通類調(diào)用Bean對(duì)象的一種方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Feign調(diào)用可重試的最佳方案分享

    Feign調(diào)用可重試的最佳方案分享

    通過(guò)spring-retry框架集合Feign去實(shí)現(xiàn)重試機(jī)制,可以為每個(gè)調(diào)用實(shí)現(xiàn)不同的重試機(jī)制,那這究竟是如何做到的呢,本文將為大家詳細(xì)講講
    2023-01-01
  • Java中通過(guò)反射實(shí)現(xiàn)代理Proxy代碼實(shí)例

    Java中通過(guò)反射實(shí)現(xiàn)代理Proxy代碼實(shí)例

    這篇文章主要介紹了Java中通過(guò)反射實(shí)現(xiàn)代理Proxy代碼實(shí)例,java實(shí)現(xiàn)代理可以通過(guò)java.lang.reflect.Proxy接口結(jié)合java.lang.reflect.InvocationHandler來(lái)實(shí)現(xiàn),需要的朋友可以參考下
    2023-08-08
  • java使用正則抓取網(wǎng)頁(yè)郵箱

    java使用正則抓取網(wǎng)頁(yè)郵箱

    這篇文章主要為大家詳細(xì)介紹了java使用正則抓取網(wǎng)頁(yè)郵箱的相關(guān)資料,感興趣的小伙伴們可以參考一下
    2016-05-05
  • 一文學(xué)習(xí)Java NIO的ByteBuffer工作原理

    一文學(xué)習(xí)Java NIO的ByteBuffer工作原理

    很多網(wǎng)友說(shuō)JDK又在寫(xiě)B(tài)ug!下面通過(guò)通過(guò)本文學(xué)習(xí)下為何Java NIO的ByteBuffer這么垃圾,涉及到ByteBuf API 的優(yōu)點(diǎn)及工作原理解析,感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • Java多線程處理List問(wèn)題

    Java多線程處理List問(wèn)題

    這篇文章主要介紹了Java多線程處理List問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Java中隨機(jī)函數(shù)變換的示例詳解

    Java中隨機(jī)函數(shù)變換的示例詳解

    這篇文章主要為大家詳細(xì)介紹了Java中隨機(jī)函數(shù)的變換,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Java有一定的幫助,感興趣的可以了解一下
    2022-08-08
  • Java超詳細(xì)透徹講解接口

    Java超詳細(xì)透徹講解接口

    接口是Java中最重要的概念之一,它可以被理解為一種特殊的類,不同的是接口的成員沒(méi)有執(zhí)行體,是由全局常量和公共的抽象方法所組成,本文給大家介紹Java接口,感興趣的朋友一起看看吧
    2022-05-05
  • Java中synchronized正確使用方法解析

    Java中synchronized正確使用方法解析

    這篇文章主要介紹了Java中syncronized正確使用方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09

最新評(píng)論