與數學相關的類

人見人愛的程式設計師發表於2020-10-30

Math

所屬的包:java.lang

Java 的 Math 包含了用於執行基本數學運算的屬性和方法,如初等指數、對數、平方根和三角函式。

Math 的方法都被定義為 static 形式,通過 Math 類可以在主函式中直接呼叫。

通常的方法

方法描述
E abs(E)返回指定引數的絕對值(E:int,long,float,double)
double ceil(double)向上取整
double floor(double)向下取整
double rint(double)取臨近的整數(如果兩邊距離一樣,則返回偶數)
int round()返回四捨五入的整數
E max(E, E)取兩個數中較大的數(E:int,long,float,double)
E min(E, E)取兩個數中較小的數(E:int,long,float,double)
double pow(double, double)將第一個引數的值返回到第二個引數的冪
double sqrt(double)獲取給定引數的平方根
double random()產生一個[0.0-1.0)的隨機數
public class Test{
	publlic static void main(String[] args){
		System.out.println(Math.ceil(1.4));//1.0
        System.out.println(Math.floor(1.4));//1.0
        System.out.println(Math.rint(1.4));//1.0
        System.out.println(Math.round(1.4));//1.0
        System.out.println(Math.sqrt(16));//4.0
	}
}

例項:

public class Test{
	public static void main(Sting[] args){
		//產生一個0-9的隨機整數
		int value = (int)(Math.random() * 10);
		System.out.println(value);
	}
}

Random

所屬的包:java.util

沒有任何繼承關係,預設繼承Object類。
所有的方法都需要使用new物件呼叫。

構造方法:
  Random random = new Random();
常用的方法:

方法描述
int nextInt()隨機產生一個int取值範圍的整數
int nextInt(int bound)隨機產生一個[0-bounf)的整數
float nextFloat()隨機產生一個[0.0-1.0)的值
boolean nextBoolean()隨機產生一個boolean的值

UUID

所屬的包:java.util

沒有任何繼承關係,預設繼承Object類
雖然有構造方法,但是一般不會建立物件

public class Test{
	public static void main(String[] args){
		UUID uuid = UUID.randomUUID();
        System.out.println(uuid.toString());//資料庫表格主鍵 primary key
        產生一個32位的隨機元素 每一個位置是一個16進位制的數字
	}
}

BigInteger

所屬的包:java.math
繼承Number類
提供的構造方法都是帶引數的,通常利用帶String引數的構造方法建立這個類的物件
BigInteger類可以描述比long型別大的資料,可以解決資料溢位的問題,
常用方法:做四則運算
add() subtract() multiply() divide()

//設計一個方法 用來計算給定數字的階乘
public BigInteger factorial(int num){
     BigInteger result = new BigInteger("1");
     for(int i = 1 ;i <= num ;i++){
         result = result.multiply(new BigInteger(i + ""));
     }
     return result;
 }
public class Test{
	public static void main(String[] args){
		BigInteger big1 = new BigInteger("123");
		BigInteger big2 = new BigInteger("456");
		big1.add(big2);
		big1.subtract(big2);
		big1.multiply(big2);
		big1.divide(big2);	

		//建立物件 呼叫計算階乘的方法
        TestMath tm = new TestMath();
        BigInteger bi = tm.factorial(10);
        System.out.println(bi.toString());	
	}
}

BigDecima

所屬的包:java.math
繼承Number類
提供的構造方法都是帶引數的,通常利用帶String引數的構造方法建立這個類的物件
BigDecimal 類則是針對很大的小數的處理類精度比較高,可以處理金融類業務,如果對計算的資料要求高精度時,必須使用BigDecimal類
常用方法:做四則運算
add() subtract() multiply() divide()

public class Test{
	public static void main(String[] args){
		BigDecimal bd = new BigDecimal("123.456");
        //小數點之後保留兩位  按照向下取整的方式進行擷取
        bd = bd.setScale(2,BigDecimal.ROUND_DOWN);
        System.out.println(bd);//123.45
	}
}

DecimaFormat

所屬的包:java.text
通過String引數的構造方法建立一個格式化物件

public class Test{
	public static void main(String[] args){
		DecimalFormat df = new DecimalFormat("000.###");//0表示必須有 #表示可有可無  四捨五入原則
        String value = df.format(123.456789);
        System.out.println(value);//123.457
	}
}

相關文章