數學處理類

我要成為羅賓姐姐發表於2021-01-03

Math類

基本概念

  • java.lang.Math類主要用於提供執行數學運算的方法,如:對數,平方根。

常用方法

public class MathTest {

    public static void main(String[] args) {

        // static int max(int a, int b) 
        System.out.println("獲取兩個整數中最大值的結果是:" + Math.max(10, 20)); // 20
        
        // static int min(int a, int b) 
        System.out.println("獲取兩個整數中最小值的結果是:" + Math.min(10, 20)); // 10
        
        // static double pow(double a, double b)
        System.out.println("獲取次方的結果是:" + Math.pow(2, 3)); // 8.0  返回第一個引數的冪,體現double型別
        
        // static int abs(int a)
        System.out.println("獲取絕對值的結果是:" + Math.abs(-5)); // 5
        
        // static long round(double a)
        System.out.println("進行四捨五入的結果是:" + Math.round(3.14)); // 3
        
        // static double sqrt(double a)
        System.out.println("該整數的平方根是:" + Math.sqrt(16)); // 4.0
        
        // static double random()
        System.out.println("生成的隨機數是:" + Math.random()); // 返回0.0到1.0的隨機數
    }
}

BigDecimal類

基本概念

  • 由於float型別和double型別在運算時可能會有誤差,若希望實現精確運算則藉助 java.math.BigDecimal型別加以描述。

常用方法

基礎知識:

  • BigDecimal類裡面沒有在整數後面加 .0 體現小數的概念(見下方divide方法)
  • 除不盡時要用RoundingMode.HALF_UP四捨五入(RoundingMode:舍入模式)
import java.math.BigDecimal;
import java.math.RoundingMode;

public class BigDecimalTest {

    public static void main(String[] args) {
        
        // 1.構造BigDecimal型別的兩個物件
        // BigDecimal(String val)
        BigDecimal bd1 = new BigDecimal("5.2");
        BigDecimal bd2 = new BigDecimal("1.3");
        
        // 2.使用構造完畢的物件實現加減乘除運算
        System.out.println("實現加法運算的結果是:" + bd1.add(bd2)); // 6.5
        System.out.println("實現減法運算的結果是:" + bd1.subtract(bd2)); // 3.9
        System.out.println("實現乘法運算的結果是:" + bd1.multiply(bd2)); // 6.76
        System.out.println("實現除法運算的結果是:" + bd1.divide(bd2)); // 4

        System.out.println("---------------------------------------------------------------");
        
        // 3.實現精確運算
        System.out.println(0.1 + 0.2); // 0.30000000000000004
        BigDecimal bd3 = new BigDecimal("0.1");
        BigDecimal bd4 = new BigDecimal("0.2");
        System.out.println("精確計算的結果是:" + bd3.add(bd4)); // 0.3

        System.out.println("---------------------------------------------------------------");
        
        // 4.注意事項
        BigDecimal bd5 = new BigDecimal("2");
        BigDecimal bd6 = new BigDecimal("0.3");
        System.out.println("除法運算的結果是:" + bd5.divide(bd6, RoundingMode.HALF_UP)); // 7
    }
}

BigInteger類

基本概念

  • 若希望表示比long型別範圍還大的整數資料,則需要藉助java.math.BigInteger型別描述。

常用方法

import java.math.BigInteger;

public class BigIntegerTest {

    public static void main(String[] args) {

        // 1.構造兩個BigInteger型別的物件並指定初始值
        BigInteger bi1 = new BigInteger("20");
        BigInteger bi2 = new BigInteger("8");
        
        // 2.實現加減乘除取餘操作並列印
        System.out.println("實現加法運算的結果是:" + bi1.add(bi2)); // 28
        System.out.println("實現減法運算的結果是:" + bi1.subtract(bi2)); // 12
        System.out.println("實現乘法運算的結果是:" + bi1.multiply(bi2)); // 160
        System.out.println("實現除法運算的結果是:" + bi1.divide(bi2)); // 2
        System.out.println("實現取餘運算的結果是:" + bi1.remainder(bi2)); // 4

        System.out.println("-----------------------------------------------------");
        
        // 3.一次性得到商和餘數
        BigInteger[] arr = bi1.divideAndRemainder(bi2);
        for (int i = 0; i < arr.length; i++) {
            System.out.println("下標為" + i + "的元素是:" + arr[i]); // 2 4
        }
    }
}

相關文章