鴻蒙OS Float

2022-05-11 17:52 更新

Float

java.lang.Object

|---java.lang.Number

|---|---java.lang.Float

public final class Float
extends Number
implements Comparable<Float>

Float 類將原始類型 float 的值包裝在對象中。 Float 類型的對象包含一個類型為 float 的字段。

此外,該類提供了幾種將浮點數(shù)轉(zhuǎn)換為字符串和將字符串轉(zhuǎn)換為浮點數(shù)的方法,以及在處理浮點數(shù)時有用的其他常量和方法。

字段摘要

修飾符和類型 字段 描述
static int BYTES 用于表示浮點值的字節(jié)數(shù)。
static int MAX_EXPONENT 有限浮點變量可能具有的最大指數(shù)。
static float MAX_VALUE 一個保持浮點類型的最大正有限值的常數(shù),(2-2-23)·2127。
static int MIN_EXPONENT 標準化浮點變量可能具有的最小指數(shù)。
static float MIN_NORMAL 一個常量,保持浮點類型的最小正正常值,2-126。
static float MIN_VALUE 一個保持浮點類型的最小正非零值的常量,2-149。
static float NaN 一個保持浮點類型的非數(shù)字 (NaN) 值的常量。
static float NEGATIVE_INFINITY 一個保持浮點類型負無窮大的常數(shù)。
static float POSITIVE_INFINITY 一個保持浮點型正無窮大的常數(shù)。
static int SIZE 用于表示浮點值的位數(shù)。
static ClassFloat TYPE 表示基本類型 float 的 Class 實例。

構(gòu)造函數(shù)摘要

構(gòu)造函數(shù) 描述
Float(double value) 構(gòu)造一個新分配的 Float 對象,該對象表示轉(zhuǎn)換為 float 類型的參數(shù)。
Float(float value) 構(gòu)造一個新分配的 Float 對象,該對象表示原始浮點參數(shù)。
Float(String s) 構(gòu)造一個新分配的 Float 對象,該對象表示由字符串表示的 float 類型的浮點值。

方法總結(jié)

修飾符和類型 方法 描述
byte byteValue() 在縮小原語轉(zhuǎn)換后,將此 Float 的值作為字節(jié)返回。
static int compare(float f1, float f2) 比較兩個指定的浮點值。
int compareTo(Float anotherFloat) 以數(shù)字方式比較兩個 Float 對象。
double doubleValue() 在擴大原始轉(zhuǎn)換后,將此浮點數(shù)的值作為雙精度值返回。
boolean equals(Object obj) 將此對象與指定對象進行比較。
static int floatToIntBits(float value) 根據(jù) IEEE 754 浮點“單一格式”位布局返回指定浮點值的表示。
static int floatToRawIntBits(float value) 根據(jù) IEEE 754 浮點“單一格式”位布局返回指定浮點值的表示,保留非數(shù)字 (NaN) 值。
float floatValue() 返回此 Float 對象的浮點值。
int hashCode() 返回此 Float 對象的哈希碼。
static int hashCode(float value) 返回浮點值的哈希碼; 與 Float.hashCode() 兼容。
static float intBitsToFloat(int bits) 返回對應(yīng)于給定位表示的浮點值。
int intValue() 在縮小原始轉(zhuǎn)換后,將此 Float 的值作為 int 返回。
static boolean isFinite(float f) 如果參數(shù)是有限浮點值,則返回 true; 否則返回 false(對于 NaN 和無窮大參數(shù))。
boolean isInfinite() 如果此 Float 值的大小無限大,則返回 true,否則返回 false。
static boolean isInfinite(float v) 如果指定的數(shù)字在數(shù)量級上無限大,則返回 true,否則返回 false。
boolean isNaN() 如果此浮點值是非數(shù)字 (NaN),則返回 true,否則返回 false。
static boolean isNaN(float v) 如果指定的數(shù)字是非數(shù)字 (NaN) 值,則返回 true,否則返回 false。
long longValue() 在縮小原始轉(zhuǎn)換后將此浮點數(shù)的值作為 long 返回。
static float max(float a, float b) 返回兩個浮點值中的較大者,就像調(diào)用 Math#max(float, float) 一樣。
static float min(float a, float b) 返回兩個浮點值中較小的一個,就像調(diào)用 Math#min(float, float) 一樣。
static float parseFloat(String s) 返回一個新的浮點數(shù),初始化為指定字符串表示的值,由 Float 類的 valueOf 方法執(zhí)行。
short shortValue() 在縮小原始轉(zhuǎn)換后,將此浮點數(shù)的值作為一個短整數(shù)返回。
static float sum(float a, float b) 根據(jù) + 運算符將兩個浮點值相加。
static String toHexString(float f) 返回浮點參數(shù)的十六進制字符串表示。
String toString() 返回此 Float 對象的字符串表示形式。
static String toString(float f) 返回 float 參數(shù)的字符串表示形式。
static Float valueOf(float f) 返回表示指定浮點值的 Float 實例。
static Float valueOf(String s) 返回一個 Float 對象,該對象包含由參數(shù)字符串 s 表示的浮點值。
從類 java.lang.Object 繼承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait

字段詳細信息

BYTES

public static final int BYTES

用于表示浮點值的字節(jié)數(shù)。

MAX_EXPONENT

public static final int MAX_EXPONENT

有限浮點變量可能具有的最大指數(shù)。 它等于 Math.getExponent(Float.MAX_VALUE) 返回的值。

MAX_VALUE

public static final float MAX_VALUE

一個保持浮點類型的最大正有限值的常數(shù),(2-2-23)·2127。 它等于十六進制浮點文字 0x1.fffffeP+127f,也等于 Float.intBitsToFloat(0x7f7fffff)。

MIN_EXPONENT

public static final int MIN_EXPONENT

標準化浮點變量可能具有的最小指數(shù)。 它等于 Math.getExponent(Float.MIN_NORMAL) 返回的值。

MIN_NORMAL

public static final float MIN_NORMAL

一個常量,保持浮點類型的最小正正常值,2-126。 它等于十六進制浮點文字 0x1.0p-126f,也等于 Float.intBitsToFloat(0x00800000)。

MIN_VALUE

public static final float MIN_VALUE

一個保持浮點類型的最小正非零值的常量,2-149。 它等于十六進制浮點文字 0x0.000002P-126f,也等于 Float.intBitsToFloat(0x1)。

NEGATIVE_INFINITY

public static final float NEGATIVE_INFINITY

一個保持浮點類型負無窮大的常數(shù)。 它等于 Float.intBitsToFloat(0xff800000) 返回的值。

NaN

public static final float NaN

一個保持浮點類型的非數(shù)字 (NaN) 值的常量。 它相當(dāng)于 Float.intBitsToFloat(0x7fc00000) 返回的值。

POSITIVE_INFINITY

public static final float POSITIVE_INFINITY

一個保持浮點型正無窮大的常數(shù)。 它等于 Float.intBitsToFloat(0x7f800000) 返回的值。

SIZE

public static final int SIZE

用于表示浮點值的位數(shù)。

TYPE

public static final ClassFloat TYPE

表示基本類型 float 的 Class 實例。

構(gòu)造函數(shù)詳細信息

Float

public Float(float value)

構(gòu)造一個新分配的 Float 對象,該對象表示原始浮點參數(shù)。

參數(shù):

參數(shù)名稱 參數(shù)描述
value 浮點數(shù)表示的值。

Float

public Float(double value)

構(gòu)造一個新分配的 Float 對象,該對象表示轉(zhuǎn)換為 float 類型的參數(shù)。

參數(shù):

參數(shù)名稱 參數(shù)描述
value 浮點數(shù)表示的值。

Float

public Float(String s) throws NumberFormatException

構(gòu)造一個新分配的 Float 對象,該對象表示由字符串表示的 float 類型的浮點值。 字符串被轉(zhuǎn)換為浮點值,就像通過 valueOf 方法一樣。

參數(shù):

參數(shù)名稱 參數(shù)描述
s 要轉(zhuǎn)換為浮點數(shù)的字符串。

Throws:

Throw名稱 Throw描述
NumberFormatException 如果字符串不包含可解析的數(shù)字。

方法詳情

toString

public static String toString(float f)

返回 float 參數(shù)的字符串表示形式。 下面提到的所有字符都是 ASCII 字符。

  • 如果參數(shù)為 NaN,則結(jié)果為字符串“NaN”。

  • 否則,結(jié)果是一個字符串,表示參數(shù)的符號和大小(絕對值)。 如果符號為負,則結(jié)果的第一個字符為'-'('\u002D'); 如果符號為正,則結(jié)果中不會出現(xiàn)符號字符。 至于幅度

m:

  • 如果m為無窮大,則用字符“Infinity”表示; 因此,正無窮產(chǎn)生結(jié)果“Infinity”,負無窮產(chǎn)生結(jié)果“-Infinity”。
  • 如果 m 為零,則用字符“0.0”表示; 因此,負零產(chǎn)生結(jié)果“-0.0”,正零產(chǎn)生結(jié)果“0.0”。
  • 如果 m 大于或等于 10-3 但小于 107,則表示為 m 的整數(shù)部分,以十進制形式表示,不帶前導(dǎo)零,后跟“.”。 ('\u002E'),后跟一個或多個小數(shù)位,表示 m 的小數(shù)部分。
  • 如果 m 小于 10-3 或大于或等于 107,則它以所謂的“計算機科學(xué)計數(shù)法”表示。 令 n 為唯一整數(shù),使得 10n ≤ m < 10n+1; 然后讓 a 是 m 和 10n 的數(shù)學(xué)精確商,使得 1 ≤ a < 10。然后將大小表示為 a 的整數(shù)部分,作為單個十進制數(shù)字,后跟“?!?('\u002E'),后跟表示 a 小數(shù)部分的十進制數(shù)字,然后是字母 'E' ('\u0045'),然后是 n 表示為十進制整數(shù),由 Integer 方法生成。 到字符串(整數(shù))。

m 或 a 的小數(shù)部分必須打印多少位? 必須至少有一個數(shù)字來表示小數(shù)部分,除此之外,必須有盡可能多的數(shù)字,但僅能將參數(shù)值與浮點類型的相鄰值唯一區(qū)分開來。 也就是說,假設(shè) x 是由該方法為有限非零參數(shù) f 生成的十進制表示所表示的精確數(shù)學(xué)值。 那么 f 必須是最接近 x 的浮點值; 或者,如果兩個浮點值同樣接近 x,則 f 必須是其中之一,并且 f 的有效位的最低有效位必須為 0。

要創(chuàng)建浮點值的本地化字符串表示,請使用 NumberFormat 的子類。

參數(shù):

參數(shù)名稱 參數(shù)描述
f 要轉(zhuǎn)換的浮點數(shù)。

返回:

參數(shù)的字符串表示。

toHexString

public static String toHexString(float f)

返回浮點參數(shù)的十六進制字符串表示。 下面提到的所有字符都是 ASCII 字符。

  • 如果參數(shù)為 NaN,則結(jié)果為字符串“NaN”。

  • 否則,結(jié)果是一個字符串,表示參數(shù)的符號和大?。ń^對值)。 如果符號為負,則結(jié)果的第一個字符為'-'('\u002D'); 如果符號為正,則結(jié)果中不會出現(xiàn)符號字符。 至于幅度

m:

  • 如果m為無窮大,則用字符串“Infinity”表示; 因此,正無窮產(chǎn)生結(jié)果“Infinity”,負無窮產(chǎn)生結(jié)果“-Infinity”。
  • 如果 m 為零,則用字符串“0x0.0p0”表示; 因此,負零產(chǎn)生結(jié)果“-0x0.0p0”,正零產(chǎn)生結(jié)果“0x0.0p0”。
  • 如果 m 是具有標準化表示的浮點值,則使用子字符串來表示有效數(shù)字和指數(shù)字段。 有效數(shù)字由字符“0x1”表示。 后跟小寫十六進制表示的有效數(shù)字的其余部分作為分數(shù)。 除非所有數(shù)字都為零,否則十六進制表示中的尾隨零被刪除,在這種情況下使用單個零。 接下來,指數(shù)由“p”表示,后跟無偏指數(shù)的十進制字符串,就好像通過對指數(shù)值調(diào)用 Integer#toString(int) 產(chǎn)生的一樣。
  • 如果 m 是具有次正規(guī)表示的浮點值,則有效數(shù)字由字符“0x0”表示。 后跟以分數(shù)表示的其余有效數(shù)字的十六進制表示。 十六進制表示中的尾隨零被刪除。 接下來,指數(shù)由“p-126”表示。 請注意,次正規(guī)有效數(shù)中必須至少有一個非零數(shù)字。

參數(shù):

參數(shù)名稱 參數(shù)描述
f 要轉(zhuǎn)換的浮點數(shù)。

返回:

參數(shù)的十六進制字符串表示。

valueOf

public static Float valueOf(String s) throws NumberFormatException

返回一個 Float 對象,該對象包含由參數(shù)字符串 s 表示的浮點值。

如果 s 為 null,則拋出 NullPointerException。

s 中的前導(dǎo)和尾隨空白字符被忽略。就像使用 String#trim 方法一樣刪除空格;也就是說,ASCII 空格和控制字符都被刪除了。 s 的其余部分應(yīng)構(gòu)成一個 FloatValue,如詞法語法規(guī)則所述:

浮點值:

簽署 NaN

Signopt Infinity

Signopt FloatingPointLiteral

Signopt HexFloatingPointLiteral

有符號整數(shù)

HexFloatingPointLiteral:

HexSignificand BinaryExponent FloatTypeSuffixopt

十六進制符號:

十六進制數(shù)

十六進制數(shù)。

0x 十六進制數(shù)字選擇。十六進制數(shù)

0X 十六進制數(shù)字選擇。十六進制數(shù)

二進制指數(shù):

BinaryExponentIndicator 有符號整數(shù)

BinaryExponentIndicator:

p

其中 Sign、FloatingPointLiteral、HexNumeral、HexDigits、SignedInteger 和 FloatTypeSuffix 與《Java? 語言規(guī)范》的詞法結(jié)構(gòu)部分中的定義相同,但數(shù)字之間不接受下劃線。如果 s 不具有 FloatValue 的形式,則拋出 NumberFormatException。否則,s 被視為代表通常的“計算機科學(xué)記數(shù)法”中的精確十進制值或精確的十六進制值;然后,這個精確的數(shù)值在概念上被轉(zhuǎn)換為“無限精確”的二進制值,然后通過 IEEE 754 浮點算術(shù)的通常舍入到最近的規(guī)則將其舍入為 float 類型,其中包括保留零值的符號。請注意,四舍五入規(guī)則也意味著溢出和下溢行為;如果 s 的精確值在量級上足夠大(大于或等于 (MAX_VALUE + Math#ulp(float)/2),則四舍五入到浮點數(shù)將導(dǎo)致無窮大,并且如果 s 的精確值在量級上足夠?。ㄐ∮诨虻扔贛IN_VALUE/2),四舍五入到float會產(chǎn)生0,最后,四舍五入后返回一個代表這個float值的Float對象。

要解釋浮點值的本地化字符串表示,請使用 NumberFormat 的子類。

請注意,尾隨格式說明符、確定浮點文字類型的說明符(1.0f 是浮點值;1.0d 是雙精度值)不會影響此方法的結(jié)果。也就是說,輸入字符串的數(shù)值直接轉(zhuǎn)換為目標浮點類型。一般來說,兩步轉(zhuǎn)換序列,字符串到雙精度,然后是雙精度到浮點數(shù),并不等同于將字符串直接轉(zhuǎn)換為浮點數(shù)。例如,如果先轉(zhuǎn)換為中間雙精度然后再轉(zhuǎn)換為浮點數(shù),則字符串“1.00000017881393421514957253748434595763683319091796875001d”會導(dǎo)致浮點值 1.0000002f;如果字符串直接轉(zhuǎn)換為浮點數(shù),則結(jié)果為 1.0000001f。

為避免在無效字符串上調(diào)用此方法并引發(fā) NumberFormatException,Double#valueOf 的文檔列出了可用于篩選輸入的正則表達式。

參數(shù):

參數(shù)名稱 參數(shù)描述
s 要解析的字符串。

返回:

一個 Float 對象,保存由 String 參數(shù)表示的值。

Throws:

Throw名稱 Throw描述
NumberFormatException 如果字符串不包含可解析的數(shù)字。

valueOf

public static Float valueOf(float f)

返回表示指定浮點值的 Float 實例。 如果不需要新的 Float 實例,則通常應(yīng)優(yōu)先使用此方法而不是構(gòu)造函數(shù) Float(float),因為此方法可能會通過緩存頻繁請求的值來顯著提高空間和時間性能。

參數(shù):

參數(shù)名稱 參數(shù)描述
f 一個浮點值。

返回:

代表 f 的 Float 實例。

parseFloat

public static float parseFloat(String s) throws NumberFormatException

返回一個新的浮點數(shù),初始化為指定字符串表示的值,由 Float 類的 valueOf 方法執(zhí)行。

參數(shù):

參數(shù)名稱 參數(shù)描述
s 要解析的字符串。

返回:

由字符串參數(shù)表示的浮點值。

Throws:

Throw名稱 Throw描述
NullPointerException 如果字符串為空
NumberFormatException 如果字符串不包含可解析的浮點數(shù)。

isNaN

public static boolean isNaN(float v)

如果指定的數(shù)字是非數(shù)字 (NaN) 值,則返回 true,否則返回 false。

參數(shù):

參數(shù)名稱 參數(shù)描述
v 要測試的值。

返回:

如果參數(shù)為 NaN,則為 true; 否則為假。

isInfinite

public static boolean isInfinite(float v)

如果指定的數(shù)字在數(shù)量級上無限大,則返回 true,否則返回 false。

參數(shù):

參數(shù)名稱 參數(shù)描述
v 要測試的值。

返回:

如果參數(shù)是正無窮大或負無窮大,則為真; 否則為假。

isFinite

public static boolean isFinite(float f)

如果參數(shù)是有限浮點值,則返回 true; 否則返回 false(對于 NaN 和無窮大參數(shù))。

參數(shù):

參數(shù)名稱 參數(shù)描述
f 要測試的浮點值

返回:

如果參數(shù)是有限浮點值,則為 true,否則為 false。

isNaN

public boolean isNaN()

如果此浮點值是非數(shù)字 (NaN),則返回 true,否則返回 false。

返回:

如果此對象表示的值為 NaN,則為 true; 否則為假。

isInfinite

public boolean isInfinite()

如果此 Float 值的大小無限大,則返回 true,否則返回 false。

返回:

如果此對象表示的值是正無窮大或負無窮大,則為真; 否則為假。

toString

public String toString()

返回此 Float 對象的字符串表示形式。 由該對象表示的原始浮點值完全轉(zhuǎn)換為字符串,就好像通過一個參數(shù)的 toString 方法一樣。

覆蓋:

類 Object 中的 toString

返回:

此對象的字符串表示形式。

byteValue

public byte byteValue()

在縮小原語轉(zhuǎn)換后,將此 Float 的值作為字節(jié)返回。

覆蓋:

類 Number 中的 byteValue

返回:

此對象表示的浮點值轉(zhuǎn)換為字節(jié)類型

shortValue

public short shortValue()

在縮小原始轉(zhuǎn)換后,將此浮點數(shù)的值作為一個短整數(shù)返回。

覆蓋:

類 Number 中的 shortValue

返回:

此對象表示的浮點值轉(zhuǎn)換為 short 類型

intValue

public int intValue()

在縮小原始轉(zhuǎn)換后,將此 Float 的值作為 int 返回。

指定者:

類 Number 中的 intValue

返回:

此對象表示的浮點值轉(zhuǎn)換為 int 類型

longValue

public long longValue()

在縮小原始轉(zhuǎn)換后將此浮點數(shù)的值作為 long 返回。

指定者:

類 Number 中的 longValue

返回:

此對象表示的浮點值轉(zhuǎn)換為 long 類型

floatValue

public float floatValue()

返回此 Float 對象的浮點值。

指定者:

類 Number 中的 floatValue

返回:

此對象表示的浮點值

doubleValue

public double doubleValue()

在擴大原始轉(zhuǎn)換后,將此浮點數(shù)的值作為雙精度值返回。

指定者:

類 Number 中的 doubleValue

返回:

此對象表示的浮點值轉(zhuǎn)換為 double 類型

hashCode

public int hashCode()

返回此 Float 對象的哈希碼。 結(jié)果是此 Float 對象表示的原始浮點值的整數(shù)位表示,完全由方法 floatToIntBits(float) 生成。

覆蓋:

類 Object 中的 hashCode

返回:

此對象的哈希碼值。

hashCode

public static int hashCode(float value)

返回浮點值的哈希碼; 與 Float.hashCode() 兼容。

參數(shù):

參數(shù)名稱 參數(shù)描述
value 哈希值

返回:

浮點值的哈希碼值。

equals

public boolean equals(Object obj)

將此對象與指定對象進行比較。 當(dāng)且僅當(dāng)參數(shù)不為 null 并且是表示浮點數(shù)的 Float 對象時,結(jié)果才為真,該浮點數(shù)與該對象表示的浮點數(shù)具有相同的值。 為此,當(dāng)且僅當(dāng)方法 floatToIntBits(float) 在應(yīng)用于每個浮點值時返回相同的 int 值時,才認為兩個浮點值相同。

請注意,在大多數(shù)情況下,對于 Float 類的兩個實例 f1 和 f2,f1.equals(f2) 的值當(dāng)且僅當(dāng)

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

也有值 true。 但是,有兩個例外:

  • 如果 f1 和 f2 都表示 Float.NaN,則 equals 方法返回 true,即使 Float.NaN==Float.NaN 的值為 false。
  • 如果 f1 代表 +0.0f 而 f2 代表 -0.0f,反之亦然,則相等測試的值為 false,即使 0.0f==-0.0f 的值為 true。

此定義允許哈希表正常運行。

覆蓋:

類 Object 中的等于

參數(shù):

參數(shù)名稱 參數(shù)描述
obj 要比較的對象

返回:

如果對象相同,則為 true; 否則為假。

floatToIntBits

public static int floatToIntBits(float value)

根據(jù) IEEE 754 浮點“單一格式”位布局返回指定浮點值的表示。

第 31 位(掩碼 0x80000000 選擇的位)表示浮點數(shù)的符號。 位 30-23(由掩碼 0x7f800000 選擇的位)表示指數(shù)。 位 22-0(由掩碼 0x007fffff 選擇的位)表示浮點數(shù)的有效位(有時稱為尾數(shù))。

如果參數(shù)為正無窮大,則結(jié)果為 0x7f800000。

如果參數(shù)為負無窮大,則結(jié)果為 0xff800000。

如果參數(shù)為 NaN,則結(jié)果為 0x7fc00000。

在所有情況下,結(jié)果都是一個整數(shù),當(dāng)將其提供給 intBitsToFloat(int) 方法時,將產(chǎn)生一個與 floatToIntBits 的參數(shù)相同的浮點值(除了所有 NaN 值都折疊為單個“規(guī)范”NaN 值 )。

參數(shù):

參數(shù)名稱 參數(shù)描述
value 一個浮點數(shù)。

返回:

表示浮點數(shù)的位。

floatToRawIntBits

public static int floatToRawIntBits(float value)

根據(jù) IEEE 754 浮點“單一格式”位布局返回指定浮點值的表示,保留非數(shù)字 (NaN) 值。

第 31 位(掩碼 0x80000000 選擇的位)表示浮點數(shù)的符號。位 30-23(由掩碼 0x7f800000 選擇的位)表示指數(shù)。位 22-0(由掩碼 0x007fffff 選擇的位)表示浮點數(shù)的有效位(有時稱為尾數(shù))。

如果參數(shù)為正無窮大,則結(jié)果為 0x7f800000。

如果參數(shù)為負無窮大,則結(jié)果為 0xff800000。

如果參數(shù)是 NaN,則結(jié)果是表示實際 NaN 值的整數(shù)。與 floatToIntBits 方法不同,floatToRawIntBits 不會將所有編碼 NaN 的位模式折疊為單個“規(guī)范”NaN 值。

在所有情況下,結(jié)果都是一個整數(shù),當(dāng)給 intBitsToFloat(int) 方法時,將產(chǎn)生一個與 floatToRawIntBits 的參數(shù)相同的浮點值。

參數(shù):

參數(shù)名稱 參數(shù)描述
value 一個浮點數(shù)。

返回:

表示浮點數(shù)的位。

intBitsToFloat

public static float intBitsToFloat(int bits)

返回對應(yīng)于給定位表示的浮點值。 根據(jù) IEEE 754 浮點“單一格式”位布局,該參數(shù)被認為是浮點值的表示。

如果參數(shù)為 0x7f800000,則結(jié)果為正無窮大。

如果參數(shù)為 0xff800000,則結(jié)果為負無窮大。

如果參數(shù)是 0x7f800001 到 0x7fffffff 范圍內(nèi)或 0xff800001 到 0xffffffff 范圍內(nèi)的任何值,則結(jié)果為 NaN。 Java 提供的任何 IEEE 754 浮點運算都無法區(qū)分具有不同位模式的相同類型的兩個 NaN 值。 NaN 的不同值只能通過使用 Float.floatToRawIntBits 方法來區(qū)分。

在所有其他情況下,讓 s、e 和 m 是可以從參數(shù)計算的三個值:

 int s = ((bits >> 31) == 0) ? 1 : -1; int e = ((bits >> 23) & 0xff); int m = (e == 0) ?                 (bits & 0x7fffff) << 1 :                 (bits & 0x7fffff) | 0x800000; 

那么浮點結(jié)果等于數(shù)學(xué)表達式s·m·2e-150的值。

請注意,此方法可能無法返回與 int 參數(shù)具有完全相同位模式的浮點 NaN。 IEEE 754 區(qū)分了兩種 NaN,靜默 NaN 和信令 NaN。這兩種 NaN 之間的差異在 Java 中通常是不可見的。信號 NaN 的算術(shù)運算將它們變成安靜的 NaN,具有不同但通常相似的位模式。但是,在某些處理器上,僅復(fù)制信號 NaN 也會執(zhí)行該轉(zhuǎn)換。特別是,復(fù)制一個信令 NaN 以將其返回給調(diào)用方法可以執(zhí)行此轉(zhuǎn)換。因此 intBitsToFloat 可能無法返回帶有信號 NaN 位模式的浮點數(shù)。因此,對于某些 int 值,floatToRawIntBits(intBitsToFloat(start)) 可能不等于 start。此外,哪些特定的位模式代表信令 NaN 取決于平臺;盡管所有 NaN 位模式,安靜或信令,都必須在上面確定的 NaN 范圍內(nèi)。

參數(shù):

參數(shù)名稱 參數(shù)描述
bits 一個整數(shù)。

返回:

具有相同位模式的浮點值。

compareTo

public int compareTo(Float anotherFloat)

以數(shù)字方式比較兩個 Float 對象。 當(dāng)應(yīng)用于原始浮點值時,此方法執(zhí)行的比較與 Java 語言數(shù)值比較運算符(<、<=、==、>=、>)執(zhí)行的比較有兩種不同之處:

  • 此方法認為 Float.NaN 等于其自身并且大于所有其他浮點值(包括 Float.POSITIVE_INFINITY)。
  • 此方法認為 0.0f 大于 -0.0f。

這確保了此方法強加的 Float 對象的自然順序與 equals 一致。

指定者:

接口 ComparableFloat 中的 compareTo

參數(shù):

參數(shù)名稱 參數(shù)描述
anotherFloat 要比較的浮點數(shù)。

返回:

如果 anotherFloat 在數(shù)值上等于此 Float,則值為 0; 如果此 Float 在數(shù)值上小于 anotherFloat,則值小于 0; 如果此浮點數(shù)在數(shù)值上大于另一個浮點數(shù),則值大于 0。

compare

public static int compare(float f1, float f2)

比較兩個指定的浮點值。 返回的整數(shù)值的符號與調(diào)用將返回的整數(shù)的符號相同:

    new Float(f1).compareTo(new Float(f2)) 

參數(shù):

參數(shù)名稱 參數(shù)描述
f1 要比較的第一個浮點數(shù)。
f2 要比較的第二個浮點數(shù)

返回:

如果 f1 在數(shù)值上等于 f2,則值為 0; 如果 f1 在數(shù)值上小于 f2,則值小于 0; 如果 f1 在數(shù)值上大于 f2,則值大于 0。

sum

public static float sum(float a, float b)

根據(jù) + 運算符將兩個浮點值相加。

參數(shù):

參數(shù)名稱 參數(shù)描述
a 第一個操作數(shù)
b 第二個操作數(shù)

返回:

a 和 b 之和

max

public static float max(float a, float b)

返回兩個浮點值中的較大者,就像調(diào)用 Math#max(float, float) 一樣。

參數(shù):

參數(shù)名稱 參數(shù)描述
a 第一個操作數(shù)
b 第二個操作數(shù)

返回:

a 和 b 中的較大者

min

public static float min(float a, float b)

返回兩個浮點值中較小的一個,就像調(diào)用 Math#min(float, float) 一樣。

參數(shù):

參數(shù)名稱 參數(shù)描述
a 第一個操作數(shù)
b 第二個操作數(shù)

返回:

a 和 b 中較小的一個

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號