JavaTM 2 Platform
Standard Ed. 6

java.lang
類別 Float

java.lang.Object
  繼承者 java.lang.Number
      繼承者 java.lang.Float
所有已實作的介面:
Serializable, Comparable<Float>

public final class Float
extends Number
implements Comparable<Float>

Float 類別在物件中包裹一個基本型別 float 的值。Float 型別的物件包含一個 float 型別的欄位。

此外,此類別提供了幾種方法,可將 float 型別與 String 型別互相轉換,還提供了處理 float 型別時非常有用的其他一些常數和方法。

從以下版本開始:
JDK1.0
另請參見:
序列化表格

欄位摘要
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
 

欄位詳細資訊

POSITIVE_INFINITY

public static final float POSITIVE_INFINITY
保存 float 型別的正無窮大值的常數。它等於 Float.intBitsToFloat(0x7f800000) 返回的值。

另請參見:
常數欄位值

NEGATIVE_INFINITY

public static final float NEGATIVE_INFINITY
保存 float 型別的負無窮大值的常數。它等於 Float.intBitsToFloat(0xff800000) 返回的值。

另請參見:
常數欄位值

NaN

public static final float NaN
保存 float 型別的非數字 (NaN) 值的常數。它等於 Float.intBitsToFloat(0x7fc00000) 返回的值。

另請參見:
常數欄位值

MAX_VALUE

public static final float MAX_VALUE
保存 float 型別的最大正有限值的常數,即 (2-2-23)·2127。它等於十六進制的浮點文字值 0x1.fffffeP+127f,也等於 Float.intBitsToFloat(0x7f7fffff)

另請參見:
常數欄位值

MIN_NORMAL

public static final float MIN_NORMAL
保存 float 型別資料的最小正標準值的常數,即 2-126。它等於十六進制的浮點文字值 0x1.0p-126f,也等於 Float.intBitsToFloat(0x00800000)

從以下版本開始:
1.6
另請參見:
常數欄位值

MIN_VALUE

public static final float MIN_VALUE
保存 float 型別資料的最小正非零值的常數,即 2-149。它等於十六進制的浮點文字值 0x0.000002P-126f,也等於 Float.intBitsToFloat(0x1)

另請參見:
常數欄位值

MAX_EXPONENT

public static final int MAX_EXPONENT
有限 float 變數可能具有的最大指數。它等於 Math.getExponent(Float.MAX_VALUE) 返回的值。

從以下版本開始:
1.6
另請參見:
常數欄位值

MIN_EXPONENT

public static final int MIN_EXPONENT
標準化 float 變數可能具有的最小指數。它等於 Math.getExponent(Float.MIN_NORMAL) 返回的值。

從以下版本開始:
1.6
另請參見:
常數欄位值

SIZE

public static final int SIZE
表示一個 float 值所使用的位數。

從以下版本開始:
1.5
另請參見:
常數欄位值

TYPE

public static final Class<Float> TYPE
表示 float 基本型別的 Class 實例。

從以下版本開始:
JDK1.1
建構子詳細資訊

Float

public Float(float value)
建構一個新分派的 Float 物件,它表示基本的 float 參數。

參數:
value - 用 Float 表示的值。

Float

public Float(double value)
建構一個新分派的 Float 物件,它表示轉換為 float 型別的參數。

參數:
value - 用 Float 表示的值。

Float

public Float(String s)
      throws NumberFormatException
建構一個新分派的 Float 物件,它表示用字元串表示的 float 型別的浮點值。字元串將被轉換為 float 值,這與 valueOf 方法一樣。

參數:
s - 將轉換為 Float 值的字元串。
拋出:
NumberFormatException - 如果字元串不包含可解析的數字。
另請參見:
valueOf(java.lang.String)
方法詳細資訊

toString

public static String toString(float f)
返回 float 參數的字元串表示形式。下面提到的所有字元都是 ASCII 字元。 必須為 ma 的小數部分列印多少位呢?至少必須有一位數來表示小數部分,除此之外,需要更多(但只能和需要的一樣多)位數來唯一地區分參數值和 float 型別的鄰近值。也就是說,假設 x 是用十進製表示法表示的精確算術值,是通過對有限非 0 參數 f 調用此方法產生的。那麼 f 一定是最接近 xfloat 值,如果有兩個 float 值同等地接近於 x,那麼 f 必須是這兩個值中的一個,並且 f 的最低有效位必須是 0

要創建浮點值的本地化字元串表示形式,請使用 NumberFormat 的子類別。

參數:
f - 要轉換的浮點型資料。
返回:
參數的字元串表示形式。

toHexString

public static String toHexString(float f)
返回 float 參數的十六進制字元串表示形式。下面提到的所有字元都是 ASCII 字元。

範例

浮點值十六進制字元串
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 值。
返回:
參數的十六進制字元串表示形式。
從以下版本開始:
1.5

valueOf

public static Float valueOf(String s)
                     throws NumberFormatException
返回保存用參數字元串 s 表示的 float 值的 Float 物件。

如果 snull,則拋出 NullPointerException 異常。

忽略 s 中的前導空白字元和尾部空白字元。就像調用 String.trim() 方法那樣移除空白;也就是說,ASCII 空格和控制字元都要移除。s 的其餘部分應該根據詞法語法規則描述構成 FloatValue

FloatValue:
Signopt NaN
Signopt Infinity
Signopt FloatingPointLiteral
Signopt HexFloatingPointLiteral
SignedInteger

HexFloatingPointLiteral:
HexSignificand BinaryExponent FloatTypeSuffixopt

HexSignificand:
HexNumeral
HexNumeral .
0x HexDigitsopt .HexDigits
0X HexDigitsopt .HexDigits

BinaryExponent:
BinaryExponentIndicator SignedInteger

BinaryExponentIndicator:
p
P
其中,SignFloatingPointLiteralHexNumeralHexDigitsSignedIntegerFloatTypeSuffixJava Language Specification 的詞法結構部分中的定義相同。如果 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"
將得到 float1.0000002f;如果直接將字元串轉換為 float 值,則結果將是 1.0000001f

為了避免對無效字元串調用此方法並導致拋出 NumberFormatExceptionDouble.valueOf 的文檔中列出了一個正則表達式,可以用該表達式在螢幕上顯示輸入。

參數:
s - 要解析的字元串。
返回:
保存用 String 參數表示的值的 Float 物件。
拋出:
NumberFormatException - 如果字元串不包含可解析的數字。

valueOf

public static Float valueOf(float f)
返回表示指定的 float 值的 Float 實例。如果不需要新的 Float 實例,則通常應優先使用此方法,而不是建構子 Float(float),因為此方法可能通過快取記憶體經常請求的值來顯著提高空間和時間性能。

參數:
f - 一個浮點值。
返回:
一個表示 fFloat 實例。
從以下版本開始:
1.5

parseFloat

public static float parseFloat(String s)
                        throws NumberFormatException
返回一個新的 float 值,該值被初始化為用指定 String 表示的值,這與 Float 類別的 valueOf 方法一樣。

參數:
s - 要解析的字元串。
返回:
用字元串參數表示的 float 值。
拋出:
NumberFormatException - 如果字元串不包含可解析的 float 值。
從以下版本開始:
1.2
另請參見:
valueOf(String)

isNaN

public static boolean isNaN(float v)
如果指定的數是一個非數字 (NaN) 值,則返回 true,否則返回 false

參數:
v - 要測試的值。
返回:
如果參數為 NaN,則返回 true;否則返回 false

isInfinite

public static boolean isInfinite(float v)
如果指定數的數值是無窮大,則返回 true,否則返回 false

參數:
v - 要測試的值。
返回:
如果參數是正無窮大或負無窮大,則返回 true;否則返回 false

isNaN

public boolean isNaN()
如果此 Float 值是一個非數字 (NaN) 值,則返回 true,否則返回 false

返回:
如果此物件表示的值是 NaN,則返回 true;否則返回 false

isInfinite

public boolean isInfinite()
如果此 Float 值的大小是無窮大,則返回 true,否則返回 false

返回:
如果此物件表示的值是正無窮大或負無窮大,則返回 true;否則返回 false

toString

public String toString()
返回此 Float 物件的字元串表示形式。使用此物件表示的基本 float 值被轉換為一個 String,此方法與帶一個參數的 toString 方法完全一樣。

覆寫:
類別 Object 中的 toString
返回:
此物件的 String 表示。
另請參見:
toString(float)

byteValue

public byte byteValue()
將此 Float 值以 byte 形式返回(強制轉換為 byte)。

覆寫:
類別 Number 中的 byteValue
返回:
此物件表示的 float 值,該值被轉換為 byte 型別

shortValue

public short shortValue()
將此 Float 值以 short 形式返回(強制轉換為 short)。

覆寫:
類別 Number 中的 shortValue
返回:
此物件表示的 float 值,該值被轉換為 short 型別
從以下版本開始:
JDK1.1

intValue

public int intValue()
將此 Float 值以 int 形式返回(強制轉換為 int 型別)。

指定者:
類別 Number 中的 intValue
返回:
此物件表示的 float 值,該值被轉換為 int 型別

longValue

public long longValue()
將此 Float 值以 long 形式返回(強制轉換為 long 型別)。

指定者:
類別 Number 中的 longValue
返回:
此物件表示的 float 值,該值被轉換為 long 型別

floatValue

public float floatValue()
返回此 Float 物件的 float 值。

指定者:
類別 Number 中的 floatValue
返回:
此物件表示的 float 值。

doubleValue

public double doubleValue()
返回此 Float 物件的 double 值。

指定者:
類別 Number 中的 doubleValue
返回:
此物件表示的 float 值被轉換為 double 型別,並返回轉換的結果。

hashCode

public int hashCode()
返回此 Float 物件的雜湊碼。結果是此 Float 物件表示的基本 float 值的整數位表示形式,與 floatToIntBits(float) 方法產生的結果完全一樣。

覆寫:
類別 Object 中的 hashCode
返回:
此物件的雜湊碼值。
另請參見:
Object.equals(java.lang.Object), Hashtable

equals

public boolean equals(Object obj)
將此物件與指定物件進行比較。當且僅當參數不是 null 而是 Float 物件,且表示的 float 值與此物件表示的 float 值相同時,結果為 true。為此,當且僅當將方法 #floatToLongBits(double) 應用於兩個值所返回的 int 值相同時,才認為這兩個 float 值相同。

注意,在大多數情況下,對於 Float 類別的兩個實例 f1f2,當且僅當

f1.floatValue() == f2.floatValue()

的值為 true 時,f1.equals(f2) 的值才為 true。但是,有以下兩種例外情況:

該定義使得雜湊表得以正確操作。

覆寫:
類別 Object 中的 equals
參數:
obj - 要比較的物件
返回:
如果物件是相同的,則返回 true;否則返回 false
另請參見:
floatToIntBits(float)

floatToIntBits

public static int floatToIntBits(float value)
根據 IEEE 754 浮點“單一格式”位佈局,返回指定浮點值的表示形式。

第 31 位(遮罩碼 0x80000000 選定的位)表示浮點數的符號。第 30-23 位(遮罩碼 0x7f800000 選定的位)表示指數。第 22-0 位(遮罩碼 0x007fffff 選定的位)表示浮點數的有效位數(有時也稱為尾數)。

如果參數為正無窮大,則結果為 0x7f800000

如果參數為負無窮大,則結果為 0xff800000

如果參數為 NaN,則結果為 0x7fc00000

在所有情況下,結果都是一個整數,將其賦予 intBitsToFloat(int) 方法將產生一個浮點值,該浮點值與 floatToIntBits 的參數相同(而所有 NaN 值則會產生一個“規範”NaN 值)。

參數:
value - 一個浮點數。
返回:
表示浮點數的位。

floatToRawIntBits

public static int floatToRawIntBits(float value)
根據 IEEE 754 浮點“單一格式”位佈局,返回指定浮點值的表示形式,並保留非數字 (NaN) 值。

第 31 位(遮罩碼 0x80000000 選定的位)表示浮點數的符號。第 30-23 位(遮罩碼 0x7f800000 選定的位)表示指數。第 22-0 位(遮罩碼 0x007fffff 選定的位)表示浮點數的有效位數(有時也稱為尾數)。

如果參數為正無窮大,則結果為 0x7f800000

如果參數為負無窮大,則結果為 0xff800000

如果參數為 NaN,則結果是表示實際 NaN 值的整數。與 floatToIntBits 方法不同,floatToRawIntBits 不壓縮所有將 NaN 編碼為一個“規範”NaN 值的位網要。

在所有情況下,結果都是一個整數,將其賦予 intBitsToFloat(int) 方法將產生一個與 floatToRawIntBits 的參數相同的浮點值。

參數:
value - 一個浮點數字。
返回:
表示浮點數字的位。
從以下版本開始:
1.3

intBitsToFloat

public static float intBitsToFloat(int bits)
返回對應於給定位表示形式的 float 值。根據 IEEE 754 浮點“單一格式”位佈局,該參數被視為浮點值表示形式。

如果參數為 0x7f800000,則結果為正無窮大。

如果參數為 0xff800000,則結果為負無窮大。

如果參數值在 0x7f8000010x7fffffff 或在 0xff8000010xffffffff 之間,則結果為 NaN。Java 提供的任何 IEEE 754 浮點操作都不能區分具有不同位網要的兩個同型別 NaN 值。不同的 NaN 值只能使用 Float.floatToRawIntBits 方法區分。

在所有其他情況下,設 sem 為可以通過以下參數進行計算的三個值;

int s = ((bits >> 31) == 0) ? 1 : -1;
int e = ((bits >> 23) & 0xff);
int m = (e == 0) ?
                (bits & 0x7fffff) << 1 :
                (bits & 0x7fffff) | 0x800000;
 
那麼浮點結果等於算術表達式 s·m·2e-150 的值。

注意,此方法不能返回與 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 浮點值。

compareTo

public int compareTo(Float anotherFloat)
比較兩個 Float 物件所表示的數值。在應用到基本 float 值時,有兩種方法可以比較執行此方法產生的值與執行 Java 語言的數字比較運算符(<、<=、== 和 >= >)產生的那些值之間的區別: 這可以確保受此方法影響的 Float 物件的自然順序與 equals 一致

指定者:
介面 Comparable<Float> 中的 compareTo
參數:
anotherFloat - 要比較的 Float 值。
返回:
如果 anotherFloat 在數字上等於此 Float,則返回 0;如果 anotherFloat 在數字上小於此 Float,則返回小於 0 的值;如果 anotherFloat 在數字上大於此 Float,則返回大於 0 的值。
從以下版本開始:
1.2
另請參見:
Comparable.compareTo(Object)

compare

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 的值。
從以下版本開始:
1.4

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only