本文目錄一覽:
- 1、求解java中Math類中的取整方法?
- 2、java中的java.math包是什麼?
- 3、Java為什麼Math類建立不了對象?
- 4、JAVA倆類,用類的時候為什麼Math類不需要new 呢
- 5、java中math類和date類的作用
求解java中Math類中的取整方法?
public static long round(double a)
返回最接近參數的 long 長整型。結果將四捨五入為整數,對結果調用 Math.floor函數, 並將所得結果強制轉換為 long 類型。
換句話說,結果等於以下表達式的值:
(long)Math.floor(a + 0.5d)
對於負數的四捨五入規則是 先把負數轉換為正數,四捨五入後,再轉換為負數
-2.6轉換為正數2.6,四捨五入2.6+0.5=3.1,然後再轉為負數-3.1
用Math.floor函數去掉小數部分為-3,然後強制轉換成長整型-3.
-2.4轉換為正數2.4,四捨五入2.4+0.5=2.9,然後再轉為負數-2.9
用Math.floor函數去掉小數部分為-2,然後強制轉換成長整型-2.
所以Math.round(-2.6)=-3,Math.round(-2.4)=-2.
java中的java.math包是什麼?
提供用於執行任意精度整數算法 (BigInteger) 和任意精度小數算法 (BigDecimal) 的類。BigInteger 除提供任意精度之外,它類似於 Java 的基本整數類型,因此在 BigInteger 上執行的操作不產生溢出,也不會丟失精度。除標準算法操作外,BigInteger 還提供模 (modular) 算法、GCD 計算、基本 (primality) 測試、素數生成、位處理以及一些其他操作。 BigDecimal 提供適用於貨幣計算和類似計算的任意精度的有符號十進制數字。BigDecimal 允許用戶對舍入行為進行完全控制,並允許用戶選擇所有八個舍入模式。
from:
Java為什麼Math類建立不了對象?
我不知道你從哪聽說math是static的 至少sun的源代碼中沒有這麼聲明
public final class Math {
/**
* Don’t let anyone instantiate this class.
*/
private Math() {}
Math是final類 不是static類
這是sun公司關於java.lang.Math類的開頭,由於構造函數被聲明為私有的,就是說明不能被外部調用,所以不能new出來一個新的對象
Math類的作用是對數學進行一些擴充,進行一些常量定義、操作定義,只需要傳入參數就可以返回你需要的結果,所以大多方法都是靜態方法直接使用,不需要實體類就行
那個聲明:Don’t let anyone instantiate this class. 也說明了 我這個Math類就是不讓你初始化任何實例。 Math還定義為final類,不允許被繼承。 所以永遠不會出現Math對象
剛才查了一下Math的相關API 我發現我說錯了一個地方:
Math類的所有方法都實現靜態化,也就是說,所有的方法都是靜態方法 使用Math.方法名就可以使用 不是部分,而是全部
JAVA倆類,用類的時候為什麼Math類不需要new 呢
1.StringBuffer為什麼要new?
答:java是面向對象語言,簡單的來說,就是化執行者為指揮者。而類的對象就是通過new關鍵字來創建對象的,再通過對象來引用成員變量和成員方法,這個深層的原因:和java在編譯期對new轉化的虛擬機指令有關係。這個不多說。
2.Math類為什麼不需要new?
答:Math是JDK提供的一個工具類,1.6版本的申明源碼如下:
public final class Math {
/**
* Don’t let anyone instantiate this class.
*/
private Math() {}
如上面源碼所示, 構造器私有化,所以無法創建對象,這就好比你使用單例模式,就需要私有化構造器來防止其他的人創建對象。再看方法:
public static int abs(int a) {
return (a 0) ? -a : a;
}
源碼中的方法都是靜態方法,所以,這部分靜態的方法在類加載的時候已經在方法區中申明出來了,不回參與你的對象實例化的過程,和對象創建沒有關係。所以,靜態的方法都是通過類型直接引用的,和你創不創建對象沒有關係。這就是我為什麼在上面寫成員方法,為了和這裡的靜態方法區分開。
java中math類和date類的作用
math類是數學庫,包含常用的數學函數,如sqrt/sin/cos等
而date類更明顯,就是處理日期用的
原創文章,作者:PVLJ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/131166.html