java.math.BigInteger 類的使用場景是大整數操做。它提供相似全部Java的基本整數運算符和java.lang.Math中的全部相關的方法的操做,如+、-、*、/、%、&、|、mod、>>、<<,以及min()、max()等等。只不過它操做的整數都是極其大的,爲科學計算提供了很大的便利。好比下面的代碼就是計算20000000000000000000 * 30000000000000000000,利用BigInteger能夠很容易的計算出來結果。java
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的類方法有40多個,覆蓋了簡單四則運算、位運算、科學計算、哈希運算、類型轉換等。下面是最最經常使用的方法:數組
java.math.BigDecimal 類提供用於算術,刻度操做,舍入,比較,哈希算法和格式轉換操做。該類的使用範圍是小數運算。咱們都知道Java的float和double是浮點數,直接進行比較操做、運算操做都會有偏差,BigDecimal就不會出現這種狀況。dom
toString()方法提供BigDecimal的規範表示。它使用戶能夠徹底控制舍入行爲。提供用於操做BigDecimal規模兩種類型的操做:ide
平常Coding中我還沒用到過這個類,須要使用的時候再查看文檔吧。不過這個類的使用方法應該和BigInteger類相似,只不過支持小數操做,在方法頭中會多一些形參來控制精度或其餘控制。函數