java.lang.Math的幾個經常使用方法 小結

在學習JavaSE中,java.lang.Math中的知識應該好好掌握。雖然在咱們的日常應用中不是不少地應用到, 可是卻表明了一種數學思想 java

最經常使用方法: 學習

java.lang.Math:記住,全部方法都爲靜態方法,因此纔有Math.方法名(); spa

ceil(double a):該方法接收一個double型的參數,返回最小的double值,該值大於等於參數,並等於某個整數。這裏要解釋一下,爲何是最小的double值,卻又要大於等於參數。ceil(double a)方法的做用是返回一系列大於等於參數的數值,也就是在這些返回數中取最小的。至關於一個集合,依次遞增,取最小的值 ,但最小的值又大於等於標值。 code

例: double num = Math.ceil(2.56); 數學

System.out.println(num);        // num = 3.0 編譯

floor(double a):返回最大的double值,該值小於等於參數,並等於某個整數。該方法的做用是將傳入的參數進行截取,使生成的值小於或等於參數值。 float

例: 方法

dobule num1 = Math.floor(2.56); 集合

System.out.println(num1);        // num1 = 2.0; co

也就是說,floor方法是將參數進行了小數截取後取整。

round(float a):返回最接近參數的int。結果將舍入爲整數:加上 1/2,對結果調用 floor 並將所得結果強制轉換爲int類型。換句話說,結果等於如下表達式的值:

(int)Math.floor(a + 0.5f)

剛開始有些想不通,既然等價,爲何不直接使用floor方法,卻要隱式地進行這樣地轉換。仔細一看,才發現有數值類型的變化。就好比:short s = 1; s +=1; 能夠正常編譯,而 s = s+1;就不能正確編譯同樣。緣由在於s += 1;表達式進行了隱式地轉換,等 同於:s = (short)(s+1)。因此,當有類型需求時,就應該注意round的使用。

例:

double a = 2.34;

int b = (int)Math.round(2.34);

System.out.println(b);    // a = 2

相關文章
相關標籤/搜索