- 所有已实现的接口:
-
Serializable
,Comparable<Float>
,Constable
,ConstantDesc
Float
类将原始类型float
的值封装在对象中。 Float
类型的对象包含一个字段,其类型为float
。
此外,该类提供了几种方法,用于将float
转换为String
,将String
转换为float
,以及在处理float
时有用的其他常量和方法。
这是一个基于值的类;程序员应将相等的实例视为可互换的,并且不应将实例用于同步,否则可能会发生不可预测的行为。例如,在将来的版本中,同步可能会失败。
浮点数的相等性、等价性和比较
java.lang.Double
类有一个关于浮点值的相等性、等价性和比较的讨论,同样适用于float
值。
- 自版本:
- 1.0
- 参见:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
用于表示float
值的字节数。static final int
有限float
变量可能具有的最大指数。static final float
一个常量,保存float
类型的最大正有限值,(2-2-23)·2127。static final int
规范化的float
变量可能具有的最小指数。static final float
一个常量,保存float
类型的最小正规值,2-126。static final float
一个常量,保存float
类型的最小正非零值,2-149。static final float
一个常量,保存float
类型的非数字(NaN)值。static final float
一个常量,保存float
类型的负无穷大。static final float
一个常量,保存float
类型的正无穷大。static final int
float
值的尾数中的位数。static final int
用于表示float
值的位数。表示原始类型float
的Class
实例。 -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionbyte
返回经过缩小原始转换后的此Float
值的byte
值。static int
compare
(float f1, float f2) 比较两个指定的float
值。int
数值上比较两个Float
对象。返回包含此实例的名义描述符的Optional
,即实例本身。double
返回经过扩展原始转换后的此Float
值的double
值。boolean
将此对象与指定对象进行比较。static float
float16ToFloat
(short floatBinary16) 返回与参数的数值最接近的float
值,该值是以short
中编码的浮点二进制16位值。static short
floatToFloat16
(float f) 返回与参数最接近的值的浮点二进制16位值,该值在short
中编码,与参数最接近。static int
floatToIntBits
(float value) 根据IEEE 754浮点“单精度格式”位布局返回指定浮点值的表示。static int
floatToRawIntBits
(float value) 根据IEEE 754浮点“单精度格式”位布局返回指定浮点值的表示,保留非数字(NaN)值。float
返回此Float
对象的float
值。int
hashCode()
返回此Float
对象的哈希码。static int
hashCode
(float value) 返回float
值的哈希码;与Float.hashCode()
兼容。static float
intBitsToFloat
(int bits) 返回给定位表示的float
值。int
intValue()
返回经过缩小原始转换后的此Float
值的int
值。static boolean
isFinite
(float f) 如果参数是有限的浮点值,则返回true
;否则返回false
(对于NaN和无穷大参数)。boolean
如果此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
返回经过缩小原始转换后的此Float
值的long
值。static float
max
(float a, float b) 返回两个float
值中较大的值,就像调用Math.max
一样。static float
min
(float a, float b) 返回两个float
值中较小的值,就像调用Math.min
一样。static float
parseFloat
(String s) 返回由Float
类的valueOf
方法执行的指定String
表示的新float
值。将此实例解析为ConstantDesc
,其结果是实例本身。short
返回经过缩小原始转换后的此Float
值的short
值。static float
sum
(float a, float b) 将两个float
值相加,如+运算符所示。static String
toHexString
(float f) 返回float
参数的十六进制字符串表示。toString()
返回此Float
对象的字符串表示。static String
toString
(float f) 返回float
参数的字符串表示。static Float
valueOf
(float f) 返回表示指定float
值的Float
实例。static Float
返回包含由参数字符串s
表示的float
值的Float
对象。
-
Field Details
-
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)
。- 参见:
-
SIZE
public static final int SIZE用于表示float
值的位数。- 自版本:
- 1.5
- 参见:
-
PRECISION
public static final int PRECISIONfloat
值的尾数中的位数。这是Java语言规范第4.2.3节中的参数N。- 自:
- 19
- 参见:
-
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
- 参见:
-
BYTES
public static final int BYTES用于表示float
值的字节数。- 自:
- 1.8
- 参见:
-
TYPE
表示原始类型float
的Class
实例。- 自:
- 1.1
-
-
Constructor Details
-
Float
Deprecated, for removal: This API element is subject to removal in a future version.It is rarely appropriate to use this constructor. The static factoryvalueOf(float)
is generally a better choice, as it is likely to yield significantly better space and time performance.构造一个新分配的Float
对象,该对象表示原始float
参数。- 参数:
-
value
- 要由Float
表示的值。
-
Float
Deprecated, for removal: This API element is subject to removal in a future version.It is rarely appropriate to use this constructor. Instead, use the static factory methodvalueOf(float)
method as follows:Float.valueOf((float)value)
.构造一个新分配的Float
对象,该对象表示转换为类型float
的参数。- 参数:
-
value
- 要由Float
表示的值。
-
Float
Deprecated, for removal: This API element is subject to removal in a future version.It is rarely appropriate to use this constructor. UseparseFloat(String)
to convert a string to afloat
primitive, or usevalueOf(String)
to convert a string to aFloat
object.构造一个新分配的Float
对象,该对象表示由字符串表示的float
值。该字符串被转换为float
值,就像通过valueOf
方法一样。- 参数:
-
s
- 要转换为Float
的字符串。 - 抛出:
-
NumberFormatException
- 如果字符串不包含可解析的数字。
-
-
Method Details
-
toString
返回float
参数的字符串表示。下面提到的所有字符都是ASCII字符。- 如果参数是NaN,则结果是字符串"
NaN
"。 - 否则,结果是一个表示参数的符号和幅度(绝对值)的字符串。如果符号为负,则结果的第一个字符是'
-
'('\u002D'
);如果符号为正,则结果中不会出现符号字符。至于幅度m:- 如果m是无穷大,则用字符
"Infinity"
表示;因此,正无穷大产生结果"Infinity"
,负无穷大产生结果"-Infinity"
。 - 如果m为零,则用字符
"0.0"
表示;因此,负零产生结果"-0.0"
,正零产生结果"0.0"
。 - 否则m为正且有限。它被转换为两个阶段的字符串:
- 选择小数:选择一个明确定义的小数dm来表示m。这个小数(几乎总是)是根据IEEE 754浮点算术的四舍五入到最近的舍入策略将m舍入到m的最短小数。
- 格式化为字符串:小数dm被格式化为一个字符串,可以是普通的或计算机化的科学记数法,具体取决于它的值。
- 如果m是无穷大,则用字符
一个小数是形式为s×10i的数字,其中s > 0和i是不是10的倍数的唯一整数。这些整数分别是小数的尾数和指数。小数的长度是满足10n-1 ≤ s < 10n的(唯一的)正整数n。
有限正数m的小数dm定义如下:
- 令R为所有根据IEEE 754浮点算术的通常四舍五入到最近舍入策略将m舍入的小数集合。
- 令p为R中所有小数的最小长度。
- 当p ≥ 2时,令T为R中长度为p的所有小数的集合。否则,令T为长度为1或2的所有小数的集合。
- 将dm定义为T中距离m最近的小数。或者如果T中有两个这样的小数,则选择具有偶数尾数的小数。
然后格式化(唯一)选择的小数dm。让s、i和n分别是小数dm的尾数、指数和长度。此外,让e = n + i - 1,让s1…sn是s的常规小数展开。注意s1 ≠ 0和sn ≠ 0。下面,小数点
'.'
是'\u002E'
,指数标识符'E'
是'\u0045'
。- 情况 -3 ≤ e < 0:将dm格式化为
0.0
…0
s1…sn,其中小数点和s1之间恰好有-(n + i)个零。例如,123 × 10-4格式化为0.0123
。 - 情况 0 ≤ e < 7:
- 子情况 i ≥ 0:将dm格式化为s1…sn
0
…0.0
,其中sn和小数点之间恰好有i个零。例如,123 × 102格式化为12300.0
。 - 子情况 i < 0:将dm格式化为s1…sn+i
.
sn+i+1…sn,其中小数点右侧恰好有-i位数字。例如,123 × 10-1格式化为12.3
。
- 子情况 i ≥ 0:将dm格式化为s1…sn
- 情况 e < -3或e ≥ 7:使用计算机化科学记数法格式化dm。这里e按照
Integer.toString(int)
的方式格式化。- 子情况 n = 1:将dm格式化为s1
.0E
e。例如,1 × 1023格式化为1.0E23
。 - 子情况 n > 1:将dm格式化为s1
.
s2…snE
e。例如,123 × 10-21格式化为1.23E-19
。
- 子情况 n = 1:将dm格式化为s1
要创建浮点值的本地化字符串表示,请使用NumberFormat的子类。
- 参数:
-
f
- 要转换的float
。 - 返回:
- 参数的字符串表示。
- 如果参数是NaN,则结果是字符串"
-
toHexString
返回float
参数的十六进制字符串表示。下面提到的所有字符都是ASCII字符。- 如果参数是NaN,则结果是字符串"
NaN
"。 - 否则,结果是一个表示参数的符号和幅度(绝对值)的字符串。如果符号为负,则结果的第一个字符是'
-
'('\u002D'
);如果符号为正,则结果中不会出现符号字符。至于幅度m:- 如果m是无穷大,则用字符串
"Infinity"
表示;因此,正无穷大产生结果"Infinity"
,负无穷大产生结果"-Infinity"
。 - 如果m为零,则用字符串
"0x0.0p0"
表示;因此,负零产生结果"-0x0.0p0"
,正零产生结果"0x0.0p0"
。 - 如果m是具有规范化表示的
float
值,则使用子字符串来表示尾数和指数字段。尾数由字符"0x1."
表示,后跟其余尾数的小写十六进制表示作为分数。在十六进制表示中去除尾随零,除非所有数字都为零,此时使用单个零。接下来,指数由"p"
表示,后跟无偏指数的十进制字符串,就像通过对指数值调用Integer.toString
一样。 - 如果m是具有次正规表示的
float
值,则尾数由字符"0x0."
表示,后跟其余尾数的十六进制表示作为分数。在十六进制表示中去除尾随零。接下来,指数由"p-126"
表示。请注意,次正规尾数中必须至少有一个非零数字。
- 如果m是无穷大,则用字符串
示例 浮点值 十六进制字符串 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
最小正规值
0x1.0p-126
最大次正规值
0x0.
- 参数:
-
f
- 要转换的float
。 - 返回:
- 参数的十六进制字符串表示。
- 自版本:
- 1.5
- 如果参数是NaN,则结果是字符串"
-
valueOf
返回一个包含由参数字符串s
表示的float
值的Float
对象。如果
s
为null
,则会抛出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
s
不具有FloatValue的形式,则会抛出NumberFormatException
。否则,s
被视为表示通常的“计算机科学记数法”中的精确十进制值或精确的十六进制值;然后将这个精确的数值概念上转换为“无限精确”的二进制值,然后按照IEEE 754浮点算术的通常舍入到最近规则将其舍入为float
类型,其中包括保留零值的符号。请注意,舍入到最近规则还意味着溢出和下溢行为;如果s
的确切值在大小上足够大(大于或等于(MAX_VALUE
+ulp(MAX_VALUE)
/2),舍入为float
将导致无穷大,如果s
的确切值在大小上足够小(小于或等于MIN_VALUE
/2),舍入为float
将导致零。最后,返回表示这个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
- 如果字符串不包含可解析的数字。
-
valueOf
返回表示指定float
值的Float
实例。如果不需要新的Float
实例,则通常应优先使用此方法,因为通过缓存频繁请求的值,此方法可能会获得显着更好的空间和时间性能。- 参数:
-
f
- 一个float值。 - 返回:
-
表示
f
的Float
实例。 - 自版本:
- 1.5
-
parseFloat
返回一个新的float
,其值由指定String
的valueOf
方法执行而初始化。- 参数:
-
s
- 要解析的字符串。 - 返回:
-
由字符串参数表示的
float
值。 - 抛出:
-
NullPointerException
- 如果字符串为null -
NumberFormatException
- 如果字符串不包含可解析的float
。 - 自版本:
- 1.2
- 参见:
-
isNaN
public static boolean isNaN(float v) 如果指定的数字是非数字(NaN)值,则返回true
,否则返回false
。- API注释:
- 此方法对应于IEEE 754中定义的isNaN操作。
- 参数:
-
v
- 要测试的值。 - 返回:
-
如果参数是NaN,则返回
true
;否则返回false
。
-
isInfinite
public static boolean isInfinite(float v) 如果指定的数字在大小上是无限大的,则返回true
,否则返回false
。- API注释:
- 此方法对应于IEEE 754中定义的isInfinite操作。
- 参数:
-
v
- 要测试的值。 - 返回:
-
如果参数是正无穷大或负无穷大,则返回
true
;否则返回false
。
-
isFinite
public static boolean isFinite(float f) 如果参数是有限浮点值,则返回true
;否则返回false
(对于NaN和无穷大参数)。- API注释:
- 此方法对应于IEEE 754中定义的isFinite操作。
- 参数:
-
f
- 要测试的float
值 - 返回:
-
如果参数是有限浮点值,则返回
true
;否则返回false
。 - 自版本:
- 1.8
-
isNaN
public boolean isNaN()如果此Float
值是非数字(NaN),则返回true
;否则返回false
。- 返回:
-
如果此对象表示的值是NaN,则返回
true
;否则返回false
。
-
isInfinite
public boolean isInfinite()如果此Float
值在大小上是无限大的,则返回true
;否则返回false
。- 返回:
-
如果此对象表示的值是正无穷大或负无穷大,则返回
true
;否则返回false
。
-
toString
返回此Float
对象的字符串表示。由此对象表示的基本float
值将被转换为String
,就像通过一个参数的toString
方法一样。 -
byteValue
public byte byteValue()将此Float
的值作为缩小的原始转换后的byte
值返回。- 覆盖:
-
byteValue
在类Number
- 返回:
-
此对象表示的
float
值转换为byte
类型的值 - 参见Java语言规范:
-
5.1.3 缩小的原始转换
-
shortValue
public short shortValue()将此Float
的值作为缩小的原始转换后的short
值返回。- 覆盖:
-
shortValue
在类Number
- 返回:
-
此对象表示的
float
值转换为short
类型的值 - 参见Java语言规范:
-
5.1.3 缩小的原始转换
- 自版本:
- 1.1
-
intValue
public int intValue()将此Float
的值作为缩小的原始转换后的int
值返回。- 指定由:
-
intValue
在类Number
- 返回:
-
由此对象表示的
float
值转换为int
类型的值 - 参见 Java 语言规范:
-
5.1.3 缩小原始类型转换
-
longValue
public long longValue()返回此Float
的值作为缩小原始类型转换后的long
值。- 指定由:
-
longValue
在类Number
- 返回:
-
由此对象表示的
float
值转换为long
类型的值 - 参见 Java 语言规范:
-
5.1.3 缩小原始类型转换
-
floatValue
public float floatValue()返回此Float
对象的float
值。- 指定由:
-
floatValue
在类Number
- 返回:
-
由此对象表示的
float
值
-
doubleValue
public double doubleValue()返回此Float
的值作为扩大原始类型转换后的double
值。- 指定由:
-
doubleValue
在类Number
- API 注意:
- 此方法对应于 IEEE 754 中定义的 convertFormat 操作。
- 返回:
-
由此对象表示的
float
值转换为double
类型的值 - 参见 Java 语言规范:
-
5.1.2 扩大原始类型转换
-
hashCode
public int hashCode() -
hashCode
public static int hashCode(float value) 返回float
值的哈希码;与Float.hashCode()
兼容。- 参数:
-
value
- 要哈希的值 - 返回:
-
float
值的哈希码值。 - 自:
- 1.8
-
equals
将此对象与指定对象进行比较。结果为true
当且仅当参数不为null
且为表示与此对象表示的float
具有相同值的Float
对象。对于此目的,仅当应用于每个值时方法floatToIntBits(float)
返回相同的int
值时,才认为两个float
值相同。- 覆盖:
-
equals
在类Object
- API 注意:
-
此方法根据
floatToIntBits(float)
而不是==
运算符在float
值上定义,因为==
运算符不定义等价关系,为满足equals合同必须实现等价关系;有关浮点数相等性和等价性的详细信息,请参见此讨论。 - 参数:
-
obj
- 要比较的对象 - 返回:
-
如果对象相同则为
true
;否则为false
。 - 参见 Java 语言规范:
-
15.21.1 数值相等运算符 == 和 !=
- 参见:
-
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
,则结果为负无穷大。如果参数在范围
0x7f800001
到0x7fffffff
或范围0xff800001
到0xffffffff
内的任何值,则结果为NaN。Java 提供的任何 IEEE 754 浮点操作都无法区分具有不同位模式的相同类型的两个NaN值。不同的NaN值只能通过使用Float.floatToRawIntBits
方法来区分。在所有其他情况下,让s、e和m是可以从参数计算出的三个值:
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,安静NaN和信号NaN。这两种NaN之间的差异通常在Java中不可见。对信号NaN的算术运算将其转换为具有不同但通常相似的位模式的安静NaN。但是,在某些处理器上,仅仅复制信号NaN也执行该转换以执行返回给调用方法的操作。因此,intBitsToFloat
可能无法返回具有信号NaN位模式的float
。因此,对于某些int
值,floatToRawIntBits(intBitsToFloat(start))
可能不等于start
。此外,哪些特定位模式表示信号NaN是依赖于平台的;尽管所有NaN位模式,无论是安静的还是信号的,都必须在上面标识的NaN范围内。- 参数:
-
bits
- 一个整数。 - 返回:
-
具有相同位模式的
float
浮点值。
-
float16ToFloat
public static float float16ToFloat(short floatBinary16) 返回与参数的数值最接近的float
值,该参数是以short
编码的浮点二进制16值。转换是精确的;所有二进制16值都可以精确表示为float
。特殊情况:- 如果参数为零,则结果是与参数相同符号的零。
- 如果参数为无穷大,则结果是与参数相同符号的无穷大。
- 如果参数为NaN,则结果是NaN。
IEEE 754二进制16格式
IEEE 754标准将二进制16定义为16位格式,以及32位二进制32格式(对应于float
类型)和64位二进制64格式(对应于double
类型)。二进制16格式类似于其他IEEE 754格式,只是更小,具有所有通常的IEEE 754值,如NaN、有符号无穷大、有符号零和次正规数。二进制16格式的参数(JLS 4.2.3)为N = 11精度位,K = 5指数位,Emax = 15,Emin = -14。- API注释:
- 此方法对应于IEEE 754中定义的从二进制16格式到二进制32格式的convertFormat操作。此方法的操作类似于原始扩宽转换(JLS 5.1.2)。
- 参数:
-
floatBinary16
- 要转换为float
的二进制16值 - 返回:
-
与参数的数值最接近的
float
值,该参数是以short
编码的浮点二进制16值 - 自:
- 20
-
floatToFloat16
public static short floatToFloat16(float f) 返回与参数最接近的浮点二进制16值,编码为short
,计算转换时采用最接近偶数舍入模式。特殊情况:- 如果参数为零,则结果是与参数相同符号的零。
- 如果参数为无穷大,则结果是与参数相同符号的无穷大。
- 如果参数为NaN,则结果是NaN。
float16ToFloat(short)
方法中有更详细的讨论。- API注释:
- 此方法对应于IEEE 754中定义的从二进制32格式到二进制16格式的convertFormat操作。此方法的操作类似于原始缩小转换(JLS 5.1.3)。
- 参数:
-
f
- 要转换为二进制16的float
值 - 返回:
-
与参数最接近的浮点二进制16值,编码为
short
- 自:
- 20
-
compareTo
按数字比较两个Float
对象。此方法对Float
对象施加了一个总序,与Java语言数字比较运算符(<, <=, ==, >=, >
)定义的不完全序有两个差异。- NaN在与其他值的比较中是无序的,并且在比较运算符下不等于自身。此方法选择将
Float.NaN
定义为等于自身,并大于所有其他double
值(包括Float.POSITIVE_INFINITY
)。 - 正零和负零在数字上是相等的,但是是不同且可区分的值。此方法选择将正零(
+0.0f
)定义为大于负零(-0.0f
)。
Float
对象的自然排序与一致的equals;有关浮点比较和排序的详细信息,请参阅此讨论。- 指定者:
-
compareTo
在接口Comparable<Float>
- 参数:
-
anotherFloat
- 要比较的Float
- 返回:
-
如果
anotherFloat
在数字上等于此Float
,则返回值为0
;如果此Float
在数字上小于anotherFloat
,则返回值小于0
;如果此Float
在数字上大于anotherFloat
,则返回值大于0
。 - 参见Java语言规范:
-
15.20.1 数值比较运算符
<
,<=
,>
, 和>=
- 自:
- 1.2
- NaN在与其他值的比较中是无序的,并且在比较运算符下不等于自身。此方法选择将
-
compare
public static int compare(float f1, float f2) 比较两个指定的float
值。返回的整数值的符号与调用以下方法返回的整数值的符号相同:Float.valueOf(f1).compareTo(Float.valueOf(f2))
- 参数:
-
f1
- 要比较的第一个float
-
f2
- 要比较的第二个float
- 返回:
-
如果
f1
在数字上等于f2
,则返回值为0
;如果f1
在数字上小于f2
,则返回值小于0
;如果f1
在数字上大于f2
,则返回值大于0
。 - 自:
- 1.4
-
sum
public static float sum(float a, float b) 将两个float
值相加,如+运算符所示。- API注释:
- 此方法对应于IEEE 754中定义的加法操作。
- 参数:
-
a
- 第一个操作数 -
b
- 第二个操作数 - 返回:
-
a
和b
的和 - 参见Java语言规范:
-
4.2.4 浮点运算
- 自:
- 1.8
- 另请参见:
-
max
public static float max(float a, float b) 返回两个float
值中较大的值,就像调用Math.max
一样。- API注释:
- 此方法对应于IEEE 754中定义的最大操作。
- 参数:
-
a
- 第一个操作数 -
b
- 第二个操作数 - 返回:
-
a
和b
中较大的值 - 自:
- 1.8
- 另请参见:
-
min
public static float min(float a, float b) 返回两个float
值中较小的值,如同调用Math.min
一样。- API注释:
- 此方法对应于IEEE 754中定义的最小操作。
- 参数:
-
a
- 第一个操作数 -
b
- 第二个操作数 - 返回:
-
a
和b
中较小的值 - 自:
- 1.8
- 另请参见:
-
describeConstable
返回包含此实例的名义描述符的Optional
,即实例本身。- 指定者:
-
describeConstable
在接口Constable
- 返回:
-
描述
Float
实例的Optional
- 自:
- 12
-
resolveConstantDesc
将此实例解析为ConstantDesc
,其结果是实例本身。- 指定者:
-
resolveConstantDesc
在接口ConstantDesc
- 参数:
-
lookup
- 忽略 - 返回:
- Float实例
- 自:
- 12
-