您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“Java的大數型BigInteger與BigDecimal類怎么使用”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Java的大數型BigInteger與BigDecimal類怎么使用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
在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進行比較 } }
在做除法的時候,如果有小數位,是這接截取掉小數位。
當然這方面不僅僅有有整型的,也有浮點型。
當然浮點型的精度也是可以盡可能大的。
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語言里面的精度問題(比如出現0.1x3 == 0.3的結果為false的問題)
但是在使用BigDecimal的時候也有一個點需要注意一下(當遇到不能除凈的話,它會選擇報錯的。)
所以在做除法的時候,直接給它做一個截取位數就好。
先來看一個方法:
public BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)
divisor - 除數。
scale - 小數點后保留幾位
roundingMode - 選擇舍入模式
所以我們就可以將它寫成這樣:
舍入模式選擇:
模式 | 意思 |
---|---|
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類怎么使用”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。