|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.lang.Number java.lang.Float
public final class Float
Float
類別在物件中包裹一個基本型別 float
的值。Float
型別的物件包含一個 float
型別的欄位。
此外,此類別提供了幾種方法,可將 float
型別與 String
型別互相轉換,還提供了處理 float
型別時非常有用的其他一些常數和方法。
欄位摘要 | |
---|---|
static int |
MAX_EXPONENT
有限 float 變數可能具有的最大指數。 |
static float |
MAX_VALUE
保存 float 型別的最大正有限值的常數,即 (2-2-23)·2127。 |
static int |
MIN_EXPONENT
標準化 float 變數可能具有的最小指數。 |
static float |
MIN_NORMAL
保存 float 型別資料的最小正標準值的常數,即 2-126。 |
static float |
MIN_VALUE
保存 float 型別資料的最小正非零值的常數,即 2-149。 |
static float |
NaN
保存 float 型別的非數字 (NaN) 值的常數。 |
static float |
NEGATIVE_INFINITY
保存 float 型別的負無窮大值的常數。 |
static float |
POSITIVE_INFINITY
保存 float 型別的正無窮大值的常數。 |
static int |
SIZE
表示一個 float 值所使用的位數。 |
static Class<Float> |
TYPE
表示 float 基本型別的 Class 實例。 |
建構子摘要 | |
---|---|
Float(double value)
建構一個新分派的 Float 物件,它表示轉換為 float 型別的參數。 |
|
Float(float value)
建構一個新分派的 Float 物件,它表示基本的 float 參數。 |
|
Float(String s)
建構一個新分派的 Float 物件,它表示用字元串表示的 float 型別的浮點值。 |
方法摘要 | |
---|---|
byte |
byteValue()
將此 Float 值以 byte 形式返回(強制轉換為 byte )。 |
static int |
compare(float f1,
float f2)
比較兩個指定的 float 值。 |
int |
compareTo(Float anotherFloat)
比較兩個 Float 物件所表示的數值。 |
double |
doubleValue()
返回此 Float 物件的 double 值。 |
boolean |
equals(Object obj)
將此物件與指定物件進行比較。 |
static int |
floatToIntBits(float value)
根據 IEEE 754 浮點“單一格式”位佈局,返回指定浮點值的表示形式。 |
static int |
floatToRawIntBits(float value)
根據 IEEE 754 浮點“單一格式”位佈局,返回指定浮點值的表示形式,並保留非數字 (NaN) 值。 |
float |
floatValue()
返回此 Float 物件的 float 值。 |
int |
hashCode()
返回此 Float 物件的雜湊碼。 |
static float |
intBitsToFloat(int bits)
返回對應於給定位表示形式的 float 值。 |
int |
intValue()
將此 Float 值以 int 形式返回(強制轉換為 int 型別)。 |
boolean |
isInfinite()
如果此 Float 值的大小是無窮大,則返回 true ,否則返回 false 。 |
static boolean |
isInfinite(float v)
如果指定數的數值是無窮大,則返回 true ,否則返回 false 。 |
boolean |
isNaN()
如果此 Float 值是一個非數字 (NaN) 值,則返回 true ,否則返回 false 。 |
static boolean |
isNaN(float v)
如果指定的數是一個非數字 (NaN) 值,則返回 true ,否則返回 false 。 |
long |
longValue()
將此 Float 值以 long 形式返回(強制轉換為 long 型別)。 |
static float |
parseFloat(String s)
返回一個新的 float 值,該值被初始化為用指定 String 表示的值,這與 Float 類別的 valueOf 方法一樣。 |
short |
shortValue()
將此 Float 值以 short 形式返回(強制轉換為 short )。 |
static String |
toHexString(float f)
返回 float 參數的十六進制字元串表示形式。 |
String |
toString()
返回此 Float 物件的字元串表示形式。 |
static String |
toString(float f)
返回 float 參數的字元串表示形式。 |
static Float |
valueOf(float f)
返回表示指定的 float 值的 Float 實例。 |
static Float |
valueOf(String s)
返回保存用參數字元串 s 表示的 float 值的 Float 物件。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
欄位詳細資訊 |
---|
public static final float POSITIVE_INFINITY
float
型別的正無窮大值的常數。它等於 Float.intBitsToFloat(0x7f800000)
返回的值。
public static final float NEGATIVE_INFINITY
float
型別的負無窮大值的常數。它等於 Float.intBitsToFloat(0xff800000)
返回的值。
public static final float NaN
float
型別的非數字 (NaN) 值的常數。它等於 Float.intBitsToFloat(0x7fc00000)
返回的值。
public static final float MAX_VALUE
float
型別的最大正有限值的常數,即 (2-2-23)·2127。它等於十六進制的浮點文字值 0x1.fffffeP+127f
,也等於 Float.intBitsToFloat(0x7f7fffff)
。
public static final float MIN_NORMAL
float
型別資料的最小正標準值的常數,即 2-126。它等於十六進制的浮點文字值 0x1.0p-126f
,也等於 Float.intBitsToFloat(0x00800000)
。
public static final float MIN_VALUE
float
型別資料的最小正非零值的常數,即 2-149。它等於十六進制的浮點文字值 0x0.000002P-126f
,也等於 Float.intBitsToFloat(0x1)
。
public static final int MAX_EXPONENT
float
變數可能具有的最大指數。它等於 Math.getExponent(Float.MAX_VALUE)
返回的值。
public static final int MIN_EXPONENT
float
變數可能具有的最小指數。它等於 Math.getExponent(Float.MIN_NORMAL)
返回的值。
public static final int SIZE
public static final Class<Float> TYPE
float
基本型別的 Class
實例。
建構子詳細資訊 |
---|
public Float(float value)
Float
物件,它表示基本的 float
參數。
value
- 用 Float
表示的值。public Float(double value)
Float
物件,它表示轉換為 float
型別的參數。
value
- 用 Float
表示的值。public Float(String s) throws NumberFormatException
Float
物件,它表示用字元串表示的 float
型別的浮點值。字元串將被轉換為 float
值,這與 valueOf
方法一樣。
s
- 將轉換為 Float
值的字元串。
NumberFormatException
- 如果字元串不包含可解析的數字。valueOf(java.lang.String)
方法詳細資訊 |
---|
public static String toString(float f)
float
參數的字元串表示形式。下面提到的所有字元都是 ASCII 字元。
NaN
"。
-
' ('\u002D'
);如果符號為正,則結果中不顯示符號字元。至於數值 m:
"Infinity"
表示;因此,正無窮大產生結果 "Infinity"
,負無窮大產生結果 "-Infinity"
。
"0.0"
表示;因此,負 0 產生結果 "-0.0"
,正 0 產生結果 "0.0"
。
.
' ('\u002E'
),再後面是表示 m 小數部分的一個或多個十進制位數。
.
' ('apos;
),接著是表示 a 小數部分的十進制位數,再後面是字母 'E
' ('\u0045'
),最後是用十進制整數形式表示的 n,這與方法 Integer.toString(int)
產生的結果一樣。
float
型別的鄰近值。也就是說,假設 x 是用十進製表示法表示的精確算術值,是通過對有限非 0 參數 f 調用此方法產生的。那麼 f 一定是最接近 x 的 float
值,如果有兩個 float
值同等地接近於 x,那麼 f 必須是這兩個值中的一個,並且 f 的最低有效位必須是 0
。
要創建浮點值的本地化字元串表示形式,請使用 NumberFormat
的子類別。
f
- 要轉換的浮點型資料。
public static String toHexString(float f)
float
參數的十六進制字元串表示形式。下面提到的所有字元都是 ASCII 字元。
NaN
"。
-
' ('\u002D'
);如果符號為正,則結果中不顯示符號字元。至於數值 m:
"Infinity"
表示;因此,正無窮大產生結果 "Infinity"
,負無窮大產生結果 "-Infinity"
。
"0x0.0p0"
表示;因此,負 0 產生結果 "-0x0.0p0"
,正 0 產生結果 "0x0.0p0"
。
float
值,則使用子字元串表示有效位數和指數。有效位數用字元串 "0x1."
表示,後跟該有效位數小數部分的小寫十六進製表示形式。除非所有位數都為 0,否則移除十六進製表示形式中的尾部 0,在所有位數為 0 的情況下,可以用一個 0 表示。然後用 "p"
表示指數,後跟無偏指數的十進制字元串,該值與對指數值調用 Integer.toString
產生的值相同。
float
值,則用字元 "0x0."
表示有效位數,後跟該有效位數小數部分的十六進製表示形式。移除十六進製表示形式中的尾部 0。然後用 "p-126"
表示指數。注意,在 subnormal 有效位數中,至少必須有一個非 0 位數。
浮點值 | 十六進制字元串 |
---|---|
1.0 | 0x1.0p0 |
-1.0 | -0x1.0p0 |
2.0 | 0x1.0p1 |
3.0 | 0x1.8p1 |
0.5 | 0x1.0p-1 |
0.25 | 0x1.0p-2 |
Float.MAX_VALUE |
0x1.fffffep127 |
Minimum Normal Value |
0x1.0p-126 |
Maximum Subnormal Value |
0x0.fffffep-126 |
Float.MIN_VALUE |
0x0.000002p-126 |
f
- 要轉換的 float
值。
public static Float valueOf(String s) throws NumberFormatException
s
表示的 float
值的 Float
物件。
如果 s
為 null
,則拋出 NullPointerException
異常。
忽略 s
中的前導空白字元和尾部空白字元。就像調用 String.trim()
方法那樣移除空白;也就是說,ASCII 空格和控制字元都要移除。s
的其餘部分應該根據詞法語法規則描述構成 FloatValue:
其中,Sign、FloatingPointLiteral、HexNumeral、HexDigits、SignedInteger 和 FloatTypeSuffix 與 Java Language Specification 的詞法結構部分中的定義相同。如果
- FloatValue:
- Signopt
NaN
- Signopt
Infinity
- Signopt FloatingPointLiteral
- Signopt HexFloatingPointLiteral
- SignedInteger
- HexFloatingPointLiteral:
- HexSignificand BinaryExponent FloatTypeSuffixopt
- HexSignificand:
- HexNumeral
- HexNumeral
.
0x
HexDigitsopt.
HexDigits0X
HexDigitsopt.
HexDigits
- BinaryExponent:
- BinaryExponentIndicator SignedInteger
- BinaryExponentIndicator:
p
P
s
的表示形式不是 FloatValue,則拋出 NumberFormatException
。否則,可以認為 s
表示的是常用“電腦科學記數法”表示的精確十進制值,或者是一個精確的十六進制值;在概念上,這個精確的數值被轉換一個“無限精確的”二進制值,然後根據常用 IEEE 754 浮點演算法的“捨入為最接近的數”規則將該值捨入為 float
型別,其中包括保留 0 值的符號。最後,返回表示這個 float
值的 Float
物件。
要解釋浮點值的本地化字元串表示形式,請使用 NumberFormat
的子類別。
注意,尾部格式說明符、確定浮點文字值型別的說明符(1.0f
是一個 float
值;1.0d
是一個 double
值)不會 影響此方法的結果。換句話說,輸入字元串的數值被直接轉換為目標浮點型別。通常,分兩步的轉換(先將字元串轉換為 double
型別,然後將 double
型別轉換為 float
型別)不 同於直接將字元串轉換為 float
型別。例如,如果首先轉換為中間型別 double
,然後再轉換為 float
型別,則字元串
"1.00000017881393421514957253748434595763683319091796875001d"
將得到 float
值 1.0000002f
;如果直接將字元串轉換為 float
值,則結果將是 1.0000001f
。
為了避免對無效字元串調用此方法並導致拋出 NumberFormatException
,Double.valueOf
的文檔中列出了一個正則表達式,可以用該表達式在螢幕上顯示輸入。
s
- 要解析的字元串。
String
參數表示的值的 Float
物件。
NumberFormatException
- 如果字元串不包含可解析的數字。public static Float valueOf(float f)
Float(float)
,因為此方法可能通過快取記憶體經常請求的值來顯著提高空間和時間性能。
f
- 一個浮點值。
public static float parseFloat(String s) throws NumberFormatException
float
值,該值被初始化為用指定 String
表示的值,這與 Float
類別的 valueOf
方法一樣。
s
- 要解析的字元串。
float
值。
NumberFormatException
- 如果字元串不包含可解析的 float
值。valueOf(String)
public static boolean isNaN(float v)
true
,否則返回 false
。
v
- 要測試的值。
true
;否則返回 false
。public static boolean isInfinite(float v)
true
,否則返回 false
。
v
- 要測試的值。
true
;否則返回 false
。public boolean isNaN()
Float
值是一個非數字 (NaN) 值,則返回 true
,否則返回 false
。
true
;否則返回 false
。public boolean isInfinite()
Float
值的大小是無窮大,則返回 true
,否則返回 false
。
true
;否則返回 false
。public String toString()
Float
物件的字元串表示形式。使用此物件表示的基本 float
值被轉換為一個 String
,此方法與帶一個參數的 toString
方法完全一樣。
Object
中的 toString
String
表示。toString(float)
public byte byteValue()
Float
值以 byte
形式返回(強制轉換為 byte
)。
Number
中的 byteValue
float
值,該值被轉換為 byte
型別public short shortValue()
Float
值以 short
形式返回(強制轉換為 short
)。
Number
中的 shortValue
float
值,該值被轉換為 short
型別public int intValue()
Float
值以 int
形式返回(強制轉換為 int
型別)。
Number
中的 intValue
float
值,該值被轉換為 int
型別public long longValue()
Float
值以 long
形式返回(強制轉換為 long
型別)。
Number
中的 longValue
float
值,該值被轉換為 long
型別public float floatValue()
Float
物件的 float
值。
Number
中的 floatValue
float
值。public double doubleValue()
Float
物件的 double
值。
Number
中的 doubleValue
float
值被轉換為 double
型別,並返回轉換的結果。public int hashCode()
Float
物件的雜湊碼。結果是此 Float
物件表示的基本 float
值的整數位表示形式,與 floatToIntBits(float)
方法產生的結果完全一樣。
Object
中的 hashCode
Object.equals(java.lang.Object)
,
Hashtable
public 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
。
f1
表示 +0.0f
,而 f2
表示 -0.0f
,或相反,那麼即使 0.0f==-0.0f
的值為 true
,equal
測試也將返回 false
。
Object
中的 equals
obj
- 要比較的物件
true
;否則返回 false
。floatToIntBits(float)
public static int floatToIntBits(float value)
第 31 位(遮罩碼 0x80000000
選定的位)表示浮點數的符號。第 30-23 位(遮罩碼 0x7f800000
選定的位)表示指數。第 22-0 位(遮罩碼 0x007fffff
選定的位)表示浮點數的有效位數(有時也稱為尾數)。
如果參數為正無窮大,則結果為 0x7f800000
。
如果參數為負無窮大,則結果為 0xff800000
。
如果參數為 NaN,則結果為 0x7fc00000
。
在所有情況下,結果都是一個整數,將其賦予 intBitsToFloat(int)
方法將產生一個浮點值,該浮點值與 floatToIntBits
的參數相同(而所有 NaN 值則會產生一個“規範”NaN 值)。
value
- 一個浮點數。
public static int floatToRawIntBits(float value)
第 31 位(遮罩碼 0x80000000
選定的位)表示浮點數的符號。第 30-23 位(遮罩碼 0x7f800000
選定的位)表示指數。第 22-0 位(遮罩碼 0x007fffff
選定的位)表示浮點數的有效位數(有時也稱為尾數)。
如果參數為正無窮大,則結果為 0x7f800000
。
如果參數為負無窮大,則結果為 0xff800000
。
如果參數為 NaN,則結果是表示實際 NaN 值的整數。與 floatToIntBits
方法不同,floatToRawIntBits
不壓縮所有將 NaN 編碼為一個“規範”NaN 值的位網要。
在所有情況下,結果都是一個整數,將其賦予 intBitsToFloat(int)
方法將產生一個與 floatToRawIntBits
的參數相同的浮點值。
value
- 一個浮點數字。
public static float intBitsToFloat(int bits)
float
值。根據 IEEE 754 浮點“單一格式”位佈局,該參數被視為浮點值表示形式。
如果參數為 0x7f800000
,則結果為正無窮大。
如果參數為 0xff800000
,則結果為負無窮大。
如果參數值在 0x7f800001
到 0x7fffffff
或在 0xff800001
到 0xffffffff
之間,則結果為 NaN。Java 提供的任何 IEEE 754 浮點操作都不能區分具有不同位網要的兩個同型別 NaN 值。不同的 NaN 值只能使用 Float.floatToRawIntBits
方法區分。
在所有其他情況下,設 s、e 和 m 為可以通過以下參數進行計算的三個值;
那麼浮點結果等於算術表達式 s·m·2e-150 的值。int s = ((bits >> 31) == 0) ? 1 : -1; int e = ((bits >> 23) & 0xff); int m = (e == 0) ? (bits & 0x7fffff) << 1 : (bits & 0x7fffff) | 0x800000;
注意,此方法不能返回與 int
參數具有完全相同位網要的 float
NaN 值。IEEE 754 區分了兩種 NaN:quiet NaN 和 signaling NaN。這兩種 NaN 之間的差別在 Java 中通常是不可見的。對 signaling NaN 進行的算術運算將它們轉換為具有不同(但通常類似)位網要的 quiet NaN。但在某些只複製 signaling NaN 的處理器上也執行這種轉換。特別是在複製 signaling NaN 以將其返回給調用方法時,可能會執行這種轉換。因此,intBitsToFloat
可能無法返回具有 signaling NaN 位網要的 float
值。所以,對於某些 int
值,floatToRawIntBits(intBitsToFloat(start))
可能不 等於 start
。此外,儘管所有 NaN 位網要(不管是 quiet NaN 還是 signaling NaN)都必須在前面確定的 NaN 範圍內,但表示 signaling NaN 的特定位網要是與平臺有關。
bits
- 一個整數。
float
浮點值。public int compareTo(Float anotherFloat)
Float
物件所表示的數值。在應用到基本 float
值時,有兩種方法可以比較執行此方法產生的值與執行 Java 語言的數字比較運算符(<、<=、== 和 >= >
)產生的那些值之間的區別:
Float.NaN
等於其自身,且大於其他所有 float
值(包括 Float.POSITIVE_INFINITY
)。
0.0f
大於 -0.0f
。
Comparable<Float>
中的 compareTo
anotherFloat
- 要比較的 Float
值。
anotherFloat
在數字上等於此 Float
,則返回 0
;如果 anotherFloat
在數字上小於此 Float
,則返回小於 0
的值;如果 anotherFloat
在數字上大於此 Float
,則返回大於 0
的值。Comparable.compareTo(Object)
public static int compare(float f1, float f2)
float
值。返回整數值的符號與以下調用返回整數的符號相同:
new Float(f1).compareTo(new Float(f2))
f1
- 要比較的第一個 float
值。f1
- 要比較的第二個 float
值。
f1
在數字上等於此 f2
,則返回值為 0
;如果 f1
在數字上小於此 f2
,則返回小於 0
的值;如果 f1
在數字上大於此 f2
,則返回大於 0
的值。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。