91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java的大數型BigInteger與BigDecimal類實例分析

發布時間:2022-05-13 15:50:29 來源:億速云 閱讀:173 作者:iii 欄目:開發技術

這篇文章主要講解了“Java的大數型BigInteger與BigDecimal類實例分析”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Java的大數型BigInteger與BigDecimal類實例分析”吧!

BigInteger類

在Java當中,是有許多數字要進行處理的類,比如Integer類,但是Integer類它也是有上限的。它的最大值就是到2^31-1.

如果我們此時想要表示更大的數,那就用Integer是無法表示的了,所在在Java當中提供了BigInteger類。

BigInteger類支持的數字可以說是無限大的,且支持任意精度的整數,也就是說他可以準確的表示任意數值而不會產生丟失的。

在這里也強調一下,因為傳入的數型是字符型,所以在做運算的時候,不能使用 + - * /

對應的就是使用它們的方法:

add(),subtract(),multiply(),divide()

還有一些常用方法:

equals方法。進行比較

代碼演示一下:

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大數為:" + bigInteger1);
        System.out.println("bigInteger2大數為:" + bigInteger2);
        System.out.println("兩個大數相加:" + bigInteger1.add(bigInteger2));//加
        System.out.println("兩個大數相減:" + bigInteger1.subtract(bigInteger2));//減
        System.out.println("兩個大數相乘:" + bigInteger1.multiply(bigInteger2));//乘
        System.out.println("兩個大數相除:" + bigInteger1.divide(bigInteger2));//除
        System.out.println("兩個大數相比:" + bigInteger1.equals(bigInteger2));//equals進行比較
    }
}

Java的大數型BigInteger與BigDecimal類實例分析

在做除法的時候,如果有小數位,是這接截取掉小數位。

當然這方面不僅僅有有整型的,也有浮點型。

BigDecimal類

當然浮點型的精度也是可以盡可能大的。

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));
    }
}

Java的大數型BigInteger與BigDecimal類實例分析

在BigDecimal的方法里面,也更好的解決java語言里面的精度問題(比如出現0.1x3 == 0.3的結果為false的問題)

Java的大數型BigInteger與BigDecimal類實例分析

BigDecimal類當中除法除不盡問題

但是在使用BigDecimal的時候也有一個點需要注意一下(當遇到不能除凈的話,它會選擇報錯的。)

Java的大數型BigInteger與BigDecimal類實例分析

所以在做除法的時候,直接給它做一個截取位數就好。

先來看一個方法:

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

divisor - 除數。

scale - 小數點后保留幾位

roundingMode - 選擇舍入模式

所以我們就可以將它寫成這樣:

Java的大數型BigInteger與BigDecimal類實例分析

舍入模式選擇:

模式意思
ROUND_CEILING向正無窮取數
ROUND_DOWN向0取數
ROUND_FLOOR向負無窮取數
ROUND_HALF_DOWN四舍五入遇到 .5向下取數
ROUND_HALF_UP四舍五入遇到 .5向上取數
ROUND_HALF_EVEN四舍五入遇到5看前面的數,大于5向上,小于5向下,等于5再向前看。

感謝各位的閱讀,以上就是“Java的大數型BigInteger與BigDecimal類實例分析”的內容了,經過本文的學習后,相信大家對Java的大數型BigInteger與BigDecimal類實例分析這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

灵台县| 漳州市| 喀什市| 芮城县| 庐江县| 北宁市| 新巴尔虎右旗| 新密市| 东乡| 类乌齐县| 英山县| 灵丘县| 尼玛县| 临高县| 随州市| 前郭尔| 泗阳县| 崇文区| 建宁县| 麻阳| 松阳县| 咸阳市| 辽阳县| 保康县| 兴义市| 安宁市| 莎车县| 浦江县| 龙岩市| 神农架林区| 晴隆县| 永济市| 石林| 永寿县| 随州市| 揭东县| 全椒县| 宣武区| 上思县| 丹东市| 开平市|