大數處理方案 BigInteger 適合保存比較大的整數。 public class BigInteger_ { public static void main(String[] args) { //當我們編程中,需要處理很大的整數,long不夠用 //可以使用BigInteger的類來搞定 // ...
大數處理方案
-
BigInteger 適合保存比較大的整數。
public class BigInteger_ { public static void main(String[] args) { //當我們編程中,需要處理很大的整數,long不夠用 //可以使用BigInteger的類來搞定 // long l = 132343214234332432445345l; // System.out.println(); BigInteger bigInteger = new BigInteger("1323432142343324376576567576576572445345"); System.out.println(bigInteger); //1. 在對 BigInteger 進行加減乘除的時候,需要使用對應的方法,不能直接進行 + - * / //2. 可以創建一個要操作的 BigInteger 然後進行相應 的操作 BigInteger bigInteger1 = new BigInteger("100"); //加 BigInteger add = bigInteger.add(bigInteger1); System.out.println(add); //減 BigInteger subtract = bigInteger.subtract(bigInteger1); System.out.println(subtract); //乘 BigInteger multiply = bigInteger.multiply(bigInteger1); System.out.println(multiply); //除 BigInteger divide = bigInteger.divide(bigInteger1); System.out.println(divide); } } //運行結果: //1323432142343324376576567576576572445345 //1323432142343324376576567576576572445445 //1323432142343324376576567576576572445245 //132343214234332437657656757657657244534500 //13234321423433243765765675765765724453
-
BigDecimal 適合保存精度更高的浮點數(小數)。
public class BigDecimal_ { public static void main(String[] args) { //當我們需要保存一個精度很高的數時,double不夠用 //可以使用 BigDecimal double d = 1.432452341211111111111151111111d; System.out.println(d); BigDecimal bigDecimal = new BigDecimal("1.432452341211111111111151111111"); System.out.println(bigDecimal); //1. 如果對 BigDecimal 進行運算,比如加減乘除,需要使用對應的方法 //2. 創建一個需要操作的 BigDecimal 然後調用其方法即可 BigDecimal bigDecimal1 = new BigDecimal("1.1"); //加 System.out.println(bigDecimal.add(bigDecimal1)); //減 System.out.println(bigDecimal.subtract(bigDecimal1)); //乘 System.out.println(bigDecimal.multiply(bigDecimal1)); //除 // System.out.println(bigDecimal.divide(bigDecimal1));//可能拋出異常ArithmeticException,因為結果可能是無限迴圈小數 //解決方法在調用 divide 方法時, 指定其精度即可 //如果有無限迴圈小數,就會保留 分子 的精度(分子的精度是多少,就保留多少精度) System.out.println(bigDecimal.divide(bigDecimal1,BigDecimal.ROUND_CEILING)); } } //運行結果: //1.4324523412111112 //1.432452341211111111111151111111 //2.532452341211111111111151111111 //0.332452341211111111111151111111 //1.5756975753322222222222662222221 //1.302229401101010101010137373738
- BigInteger 和 BigDecimal 常見方法
- add 加
- subtract 減
- multiply 乘
- divide 除