public final class Float extends Number implements Comparable<Float>
Float
类在一个对象中包含一个原始类型float
的值。
类型为Float
的对象包含一个单一字段,其类型为float
。
此外,该类还提供了几种将float
转换为String
和String
转换为float
,以及在处理float
时有用的其他常数和方法。
Modifier and Type | Field and Description |
---|---|
static int |
BYTES
用于表示
float 值的字节数。
|
static int |
MAX_EXPONENT
最大指数有限的
float 变量可能有。
|
static float |
MAX_VALUE
的常量保持型的最大正的有限值
float ,(2-2
-23)A·2
127。
|
static int |
MIN_EXPONENT
最小指数归一化
float 变量可能有。
|
static float |
MIN_NORMAL
恒定持有
float 类型的最小正正常值,2
-126 。
|
static float |
MIN_VALUE
一个常数保持最小的正非零值类型
float
-149 。
|
static float |
NaN
一个常数,持有
float 类型的非数字(NaN)值。
|
static float |
NEGATIVE_INFINITY
持有
float 类型的负无穷大的
float 。
|
static float |
POSITIVE_INFINITY
恒定持有
float 类型的正无穷大。
|
static int |
SIZE
用于表示一个
float 值的位数。
|
static 类<Float> |
TYPE
类 原始类型
float 的
类 实例。
|
Constructor and Description |
---|
Float(double value)
构造一个新分配
Float 对象,它表示转换为类型参数
float 。
|
Float(float value)
构造一个新分配的
Float 对象,该对象表示基元
float 参数。
|
Float(String s)
构造一个新分配
Float 对象,它表示类型的浮点值
float 用字符串表示。
|
Modifier and Type | Method and Description |
---|---|
byte |
byteValue()
返回此值
Float 为
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 int |
hashCode(float value)
返回一个 float 值的哈希码;
兼容Float.hashCode() 。
|
static float |
intBitsToFloat(int bits)
返回与给
float 表示相对应的
float 值。
|
int |
intValue()
在
int 后返回
Float 作为int的值。
|
static boolean |
isFinite(float f)
如果参数是有限浮点值,则返回 true ;
返回false (对于NaN和无穷大参数)。
|
boolean |
isInfinite()
返回
true 如果这个
Float 值是无限大,
false 否则。
|
static boolean |
isInfinite(float v)
返回
true 如果指定的数量是无限大,
false 其他。
|
boolean |
isNaN()
如果这个
Float 值
Float 数字(NaN),则返回
true ,
false false。
|
static boolean |
isNaN(float v)
如果指定的数字是非数字(NaN)值,则返回
true ,
false false。
|
long |
longValue()
这个的返回值
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 初始化为指定的代表的值
String ,如通过执行
valueOf 类的方法
Float 。
|
short |
shortValue()
返回此值
Float 为
short 的基本收缩转换后。
|
static float |
sum(float a, float b)
根据+运算符将两个
float 值一起添加。
|
static String |
toHexString(float f)
返回
float 参数的十六进制字符串
float 形式。
|
String |
toString()
返回此
Float 对象的字符串表示形式。
|
static String |
toString(float f)
返回
float 参数的字符串
float 形式。
|
static Float |
valueOf(float f)
返回一个
Float 指定的
float 值的
Float 实例。
|
static Float |
valueOf(String s)
返回一个
Float 对象,保存由参数字符串
s 的
float 值。
|
public static final float POSITIVE_INFINITY
float
类型的正无穷大。
它等于Float.intBitsToFloat(0x7f800000)
返回的值。
public static final float NEGATIVE_INFINITY
float
类型的负无穷大的float
。
它等于Float.intBitsToFloat(0xff800000)
返回的值。
public static final float NaN
float
类型的非数字(NaN)值。
它相当于返回的值Float.intBitsToFloat(0x7fc00000)
。
public static final float MAX_VALUE
float
,(2-2 -23)A·2 127。
它等于十六进制浮点数文字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
-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
float
值的位数。
public static final int BYTES
float
值的字节数。
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
参数的字符串float
形式。
下面提到的所有字符都是ASCII字符。
NaN
”。 -
”( '\u002D'
); 如果符号为正,则结果中不会出现任何符号字符。 至于幅度m :
"Infinity"
; 因此,正无穷大产生结果"Infinity"
和负无穷大产生结果"-Infinity"
。 "0.0"
; 因此,负零产生结果"-0.0"
和正零产生结果"0.0"
。 .
”( '\u002E'
),后跟一个或多个表示m的小数部分十进制数字。 .
”( '\u002E'
),再后面是表示一个小数部分十进制数字,后面跟有字母“ E
”( '\u0045'
),接着为十进制整数n的表示,作为由该方法制备Integer.toString(int)
。 float
相邻值所需的数量之外,还需要多少数字。
也就是说,假设x是由用于有限非零参数f的此方法生成的十进制表示形式表示的确切数学值。
那么f必须是最接近x的float
值;
或者,如果两个float
值都同样接近为x,则f必须是它们中的一个和f的有效数的至少显著位必须为0
。
要创建浮点值的本地化字符串表示,请使用NumberFormat
的子类 。
f
- 要转换的浮点数。
public static String toHexString(float f)
float
参数的十六进制字符串float
形式。
下面提到的所有字符都是ASCII字符。
NaN
”。 -
”( '\u002D'
); 如果符号为正,则结果中不会出现任何符号字符。 至于幅度m :
"Infinity"
; 因此,正无穷大产生结果"Infinity"
和负无穷大产生结果"-Infinity"
。 "0x0.0p0"
; 因此,负零产生结果"-0x0.0p0"
,正零产生结果"0x0.0p0"
。 float
一化表示的float
值,则使用子字符串来表示有效位数和指数字段。 有效位数由字符"0x1." "0x1."
后面是有意义数据的其余部分的小写十六进制表示形式作为分数。 删除十六进制表示中的尾随零,除非所有数字都为零,在这种情况下使用单个零。 接下来,指数由"p"
后面是无偏指数的十进制字符串,就像通过对指数值调用Integer.toString
生成的那样 。 float
表示的float
值,则有效位数由字符"0x0."
后面是有效数的其余部分的十六进制表示作为分数。 删除十六进制表示中的尾随零。 接下来,指数由"p-126"
。 请注意,在异常有效位数中必须至少有一个非零数字。 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
Float
对象,保存由参数字符串s
的float
值。
如果s
是null
,那么抛出一个NullPointerException
。
s中的前导和尾随空格s
将被忽略。 空格被删除,好像通过String.trim()
方法; 也就是说,ASCII空间和控制字符都被删除。 s
的其余部分应构成FloatValue ,如词法语法规则所述:
其中Sign , FloatingPointLiteral , HexNumeral , HexDigits , SignedInteger和FloatTypeSuffix在The 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
的通常的圆到最近的规则进行四舍五入到类型float,其包括保留零值的符号。
注意,round-to-nearest规则也意味着溢出和下溢行为;
如果s
的确切值足够大(大于或等于( MAX_VALUE
+ ulp(MAX_VALUE)
/2 )),则舍入到float
将导致无穷大,如果s
的确切值足够小(小于或等于到MIN_VALUE
/2 ),四舍五入将导致零。最后,在舍入后,返回一个Float
对象,表示此float
。
要解释浮点值的本地化字符串表示,请使用NumberFormat
的子类 。
注意,尾部格式说明,即确定一个浮点文字的类型说明符( 1.0f
是float
值; 1.0d
是double
值), 不影响该方法的结果。 换句话说,输入字符串的数值直接转换为目标浮点类型。 一般来说,转换的两步序列,字符串为double
后跟double
至float
, 并不等同于将字符串直接转换为float
。 例如,如果首先转换为中间double
,然后转换为float
,则字符串
"1.00000017881393421514957253748434595763683319091796875001d"
结果在float
价值1.0000002f
; 如果字符串直接转换为float
, 1.0000001f
结果为float
。
避免调用上无效字符串这种方法和具有NumberFormatException
被抛出,进行文件Double.valueOf
列出了正则表达式可用于筛选的输入端。
s
- 要解析的字符串。
Float
对象保存由
String
参数表示的值。
NumberFormatException
- 如果字符串不包含可解析的数字。
public static Float valueOf(float f)
Float
指定的float
值的Float
实例。
如果不需要新的Float
实例,则该方法通常优先于构造函数Float(float)
使用 ,因为该方法可能通过缓存经常请求的值而产生明显更好的空间和时间性能。
f
- 一个浮点值。
Float
实例,代表
f
。
public static float parseFloat(String s) throws NumberFormatException
float
初始化为指定的代表的值
String
,如通过执行
valueOf
类的方法
Float
。
s
- 要解析的字符串。
float
值由字符串参数表示。
NullPointerException
- 如果字符串为空
NumberFormatException
- 如果字符串不包含可解析的
float
。
valueOf(String)
public static boolean isNaN(float v)
true
如果指定的号码是一个不一个数字(NaN)值,
false
否则。
v
- 要测试的值。
true
如果参数是NaN;
false
否则。
public static boolean isInfinite(float v)
true
如果指定的数字大小无限大,
false
false。
v
- 要测试的值。
true
如果参数是正无穷大或负无穷大;
false
否则。
public static boolean isFinite(float f)
true
;
返回false
(对于NaN和无穷大参数)。
f
- 要测试的
float
值
true
如果参数是有限浮点值,
false
false。
public boolean isNaN()
Float
值
Float
数字(NaN),则返回
true
,
false
false。
true
如果该对象表示的值为NaN;
false
否则。
public boolean isInfinite()
true
如果这个
Float
值是无限大的,
false
false。
true
如果由该对象表示的值是正无穷大或负无穷大;
false
否则。
public String toString()
Float
对象的字符串表示形式。
原始float
该对象表示值被转换为String
完全一样,如果通过该方法toString
一个参数的。
toString
在类别
Object
String
表示。
toString(float)
public byte byteValue()
Float
为
byte
的基本收缩转换后。
public short shortValue()
short
后,返回
Float
作为short的值。
shortValue
在
Number
float
值转换为
short
public int intValue()
Float
作为
int
的基本收缩转换之后。
public long longValue()
Float
为
long
的基本收缩转换后。
public float floatValue()
Float
对象的
float
值。
floatValue
在类别
Number
float
值
public double doubleValue()
Float
为
double
一个宽元转换后。
doubleValue
在类别
Number
float
值转换为
double
public int hashCode()
Float
对象的哈希码。
结果是由该Float
对象表示的基float
值的整数位表示,正如由方法floatToIntBits(float)
所产生的Float
。
hashCode
在类别
Object
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
public static int hashCode(float value)
float
值的哈希码;
兼容Float.hashCode()
。
value
- 哈希值
float
值的哈希码值。
public boolean equals(Object obj)
true
当且仅当该参数不是null
并且是Float
对象,它表示一个float
具有相同的值作为float
该对象表示。
为此,当且仅当方法floatToIntBits(float)
在应用于每个值时返回相同的int
值时,两个float
值被认为是相同的。
请注意,在大多数情况下,类的两个实例Float
, f1
和f2
,值f1.equals(f2)
是true
当且仅当
f1.floatValue() == f2.floatValue()
也有值true
。 但是,有两个例外:
f1
和f2
均代表Float.NaN
,则equals
方法返回true
,即使Float.NaN==Float.NaN
的值为false
。 f1
表示+0.0f
,而f2
表示-0.0f
,反之亦然, equal
测试的值为false
,即使0.0f==-0.0f
的值为true
。 equals
在类别
Object
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
表示对应的float
值。
根据IEEE 754浮点“单格式”位布局,该参数被认为是浮点值的表示。
如果参数为0x7f800000
,则结果为正无穷大。
如果参数为0xff800000
,结果为负无穷大。
如果参数在上述范围内的任何值0x7f800001
通过0x7fffffff
,或在范围0xff800001
通过0xffffffff
,其结果是NaN。 Java提供的IEEE 754浮点运算不能用不同的位模式区分同一类型的两个NaN值。 NaN的不同值只能通过使用Float.floatToRawIntBits
方法进行Float.floatToRawIntBits
。
在所有其他情况下,令s , e和m是可以从参数计算的三个值:
那么浮点结果等于数学表达式s · m ·2 e -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,安静的NaN和信号NaN 。 两种NaN之间的区别通常在Java中不可见。 信号NaN的算术运算将它们变成具有不同但通常相似的位模式的安静的NaN。 然而,在某些处理器上,仅仅复制信号NaN也执行该转换。 特别地,复制信令NaN以将其返回到调用方法可以执行该转换。 所以intBitsToFloat
可能无法返回一个float
具有signaling NaN的位模式。 因此,对于一些int
值, floatToRawIntBits(intBitsToFloat(start))
可能不等于start
。 此外,哪些特定位模式表示信令NaN是平台依赖的; 尽管所有NaN位模式,安静或信令都必须位于上面确定的NaN范围内。
bits
- 一个整数。
float
具有相同位模式的浮点值。
public int compareTo(Float anotherFloat)
Float
对象。
当应用于原始float
值时,通过此方法进行比较的方法与Java语言数值比较运算符( <, <=, ==, >=, >
)执行的比较有两种float
:
Float.NaN
被认为是等于自己和大于所有其他float
值(包括Float.POSITIVE_INFINITY
)。 0.0f
被这种方法认为是大于-0.0f
。 Float
对象的自然排序 与equals一致 。
compareTo
在界面
Comparable<Float>
anotherFloat
- 要比较的
Float
。
0
如果anotherFloat
在数字上等于这个Float
;
的值小于0
如果这Float
在数值上小于anotherFloat
;
如果Float
在数值上大于0
则值大于anotherFloat
。
Comparable.compareTo(Object)
public static int compare(float f1, float f2)
float
值。
返回的整数值的符号与调用返回的整数的符号相同:
new Float(f1).compareTo(new Float(f2))
f1
- 第一个
float
进行比较。
f2
- 第二个
float
进行比较。
0
如果f1
在数字上等于f2
;
的值小于0
如果f1
在数值上小于f2
;
如果f1
在数值上大于0
则值大于f2
。
public static float sum(float a, float b)
float
值一起添加。
a
- 第一个操作数
b
- 第二个操作数
a
和
b
的总和
BinaryOperator
public static float max(float a, float b)
float
的较大值,就像调用
Math.max
一样 。
a
- 第一个操作数
b
- 第二个操作数
a
和
b
的较大
b
BinaryOperator
public static float min(float a, float b)
float
的较小值,就像调用
Math.min
一样 。
a
- 第一个操作数
b
- 第二个操作数
a
和
b
BinaryOperator