Float 基本數據類型float 的包裝類
Float 類型的對象包含一個 float 類型的字段
屬性簡介
這些屬性,看過上一篇浮點數簡介的話,可以很清晰的理解
構造方法
Float 依然提供了根據基本類型float以及float的String形式構造
String形式依然借助於parseXXX形式 parseFloat
另外,也提供了根據基本類型double進行構造的方式,內部直接強轉
常用方法
Float提供了對於指定值的表示形式的獲取方法, 這表示形式也就是是一個32位的二進制位序列
浮點數有幾種特殊的表示,比如 無窮 NaN等
額外的,也提供了一些相關的方法
比較
static int compare(float f1, float f2) | 靜態方法 比較兩個float f1 < f2 小於0 f1 = f2 等於0 f1 > f2 大於0 |
int compareTo(Float anotherFloat) | 實例方法 兩個對象進行大小比較,依賴於靜態方法 ![]() |
parseXXX系列
字符串解析 為 基本類型,
不需要對象,所以都是靜態方法
返回一個字符串形式表示的基本類型float 表現效果同valueOf(String),不過valueOf 返回的是對象 |
如果String是null或者不包含可以解析的字符串將會拋出異常 |
底層依賴sun.misc.FloatingDecimal![]() |
valueOf系列
static Float valueOf(float f) | ![]() |
static Float valueOf(String s) | 依賴parseFloat方法 所以上面說跟valueOf(String)表現效果相同,本身就是一樣 ![]() |
Float沒有 decode方法
XXXValue系列
類似之前介紹的其他數值類型 全部都是強轉內部的 value return (XXX)value; |
byteValue()
shortValue()
intValue()
longValue()
floatValue()
doubleValue()
|
toString toXXXString 系列
equals
boolean equals(Object obj) |
將此對象與指定對象進行比較
當且僅當參數不是 null 而是 Float 對象,且表示的 float 值與此對象表示的 float 值相同時,結果為 true
為此,當且僅當將方法 #floatToLongBits(double) 應用於兩個值所返回的 int 值相同時,才認為這兩個 float 值相同
注意,在大多數情況下,對於 Float 類的兩個實例 f1 和 f2,當且僅當
f1.floatValue() == f2.floatValue()
的值為 true 時,f1.equals(f2) 的值才為 true。但是,有以下兩種例外情況:
如果 f1 和 f2 都表示 Float.NaN,那么即使 Float.NaN==Float.NaN 的值為 false,equals 方法也將返回 true
所以此處使用的是floatToIntBits,而不是raw的
如果 f1 表示 +0.0f,而 f2 表示 -0.0f,或相反,那么即使 0.0f==-0.0f 的值為 true,equal 測試也將返回 false
該定義使得哈希表得以正確操作。
|
hashCode
其他方法
總結
其實浮點數的表示形式與使用規范才是重點
Float只是float的包裝,float也只是IEEE754 標准的一個實現,根本還是在於標准的理解