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
.0xHexDigitsopt.HexDigits0XHexDigitsopt.HexDigits
- BinaryExponent:
- BinaryExponentIndicator SignedInteger
- BinaryExponentIndicator:
pP
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
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.