Java Big Number操作BigInteger及BigDecimal類詳解
BigInteger類
java.math.BigInteger 類的使用場景是大整數操作。它提供類似所有Java的基本整數運算符和java.lang.Math中的所有相關的方法的操作,如+、-、*、/、%、&、|、mod、>>、<<,以及min()、max()等等。
隻不過它操作的整數都是極其大的,為科學計算提供瞭很大的便利。比如下面的代碼就是計算20000000000000000000 * 30000000000000000000,利用BigInteger可以很容易的計算出來結果。
import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in=new Scanner(System.in); String a = in.nextLine(); String b = in.nextLine(); BigInteger biga = new BigInteger(a); BigInteger bigb = new BigInteger(b); BigInteger result = biga.multiply(bigb); System.out.println(result); } } //輸入 30000000000000000000 20000000000000000000 //輸出 600000000000000000000000000000000000000
構造函數
BigInteger提供瞭6個構造函數,方便取到一個大數。上方的代碼就是利用形參是String的構造函數來將傳入的字符串轉換為BigInteger類型。常用的構造方法如下:
- BigInteger(String val):將10進制字符串轉換為BigInteger
- BigInteger(byte[] val):將隻含有0和1的bite[]數組轉換為2進制表示的BigInteger值
- BigInteger(int numBits, Random rnd):構造一個隨機生成的BigInteger,均勻分佈在范圍0到 (2^numBits – 1)
- BigInteger(String val, int radix):將字符串轉換為指定進制的BigInteger
類方法
BigInteger的類方法有40多個,覆蓋瞭簡單四則運算、位運算、科學計算、哈希運算、類型轉換等。下面是最最常用的方法:
- BigInteger abs() :求絕對值
- BigInteger add(BigInteger val):計算和
- BigInteger subtract(BigInteger val):計算差
- BigInteger multiply(BigInteger val):計算積
- BigInteger divide(BigInteger val):計算商
- BigInteger pow(int exponent) :計算冪
- BigInteger remainder(BigInteger val):計算餘數
- BigInteger max(BigInteger val):返回較大值
- BigInteger min(BigInteger val):返回較小值
BigDecimal類
java.math.BigDecimal 類提供用於算術,刻度操作,舍入,比較,哈希算法和格式轉換操作。該類的使用范圍是小數運算。我們都知道Java的float和double是浮點數,直接進行比較操作、運算操作都會有誤差,BigDecimal就不會出現這種情況。
toString()方法提供BigDecimal的規范表示。它使用戶可以完全控制舍入行為。提供用於操作BigDecimal規模兩種類型的操作:
- 縮放/舍入操作
- 小數點移動操作。
日常Coding中我還沒用到過這個類,需要使用的時候再查看文檔吧。不過這個類的使用方法應該和BigInteger類類似,隻不過支持小數操作,在方法頭中會多一些形參來控制精度或其他控制。
以上就是Java Big Number操作BigInteger及BigDecimal類詳解的詳細內容,更多關於Java Big Number操作的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- JAVA biginteger類bigdecimal類的使用示例學習
- Java 處理超大數類型之BigInteger案例詳解
- BigDecimal的加減乘除計算方法詳解
- java中求高精度除法,要求保留N位小數
- java BigDecimal類案例詳解