- java.lang.Object
-
- java.lang.Number
-
- java.lang.Float
-
- All Implemented Interfaces:
-
Serializable,Comparable<Float>
public final class Float extends Number implements Comparable<Float>
Float类在一个对象中包含一个原始类型float的值。 类型为Float的对象包含单个字段,其类型为float。此外,该类还提供了几种将
float转换为String和String转换为float,以及其他常数和方法在处理float时非常有用。- 从以下版本开始:
- 1.0
- 另请参见:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field 描述 static intBYTES用于表示float值的字节数。static intMAX_EXPONENT最大指数有限的float变量可能有。static floatMAX_VALUE的常量保持型的最大正的有限值float,(2-2 -23)A·2 127。static intMIN_EXPONENT最小指数归一化float变量可能有。static floatMIN_NORMAL一个常数保持类型为float的最小正常值,2 -126 。static floatMIN_VALUE一个持有最小正非零值的常数,类型为float-149 。static floatNaN一个持有非数字(NaN)值的常数,类型为float。static floatNEGATIVE_INFINITY一个持有float型的负无穷大的float。static floatPOSITIVE_INFINITY持有float型的正无穷大的float。static intSIZE用于表示float值的位数。static Class<Float>TYPEClass实例,表示原始类型float。
-
构造方法摘要
构造方法 Constructor 描述 Float(double value)已过时。很少使用这个构造函数。 相反,使用静态工厂方法valueOf(float)方法如下:Float.valueOf((float)value)。Float(float value)已过时。很少使用这个构造函数。 静态工厂valueOf(float)通常是一个更好的选择,因为它可能产生明显更好的空间和时间性能。Float(String s)已过时。很少使用这个构造函数。 使用parseFloat(String)将字符串转换为float原语,或使用valueOf(String)将字符串转换为Float对象。
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 bytebyteValue()在缩小原始转换后,返回Float的值作为byte。static intcompare(float f1, float f2)比较两个指定的float值。intcompareTo(Float anotherFloat)数字比较两个Float对象。doubledoubleValue()返回此值Float为double一个宽元转换后。booleanequals(Object obj)将此对象与指定对象进行比较。static intfloatToIntBits(float value)根据IEEE 754浮点“单格式”位布局返回指定浮点值的表示。static intfloatToRawIntBits(float value)根据IEEE 754浮点“单格式”位布局返回指定浮点值的表示,保留非数字(NaN)值。floatfloatValue()返回此Float对象的float值。inthashCode()返回此Float对象的哈希码。static inthashCode(float value)返回一个float值的哈希码; 兼容Float.hashCode()。static floatintBitsToFloat(int bits)返回对应给定位表示的float值。intintValue()在缩小原始转换后,返回Float的值作为int。static booleanisFinite(float f)如果参数是有限浮点值,则返回true; 返回false(对于NaN和无穷大参数)。booleanisInfinite()如果这个Float价值无限大,则返回true,否则为false。static booleanisInfinite(float v)返回true如果指定的数是无限大,false否则。booleanisNaN()返回true如果此Float值是不是非数字(NAN),false否则。static booleanisNaN(float v)返回true如果指定的号码是一个不一个数字(NaN)值,false否则。longlongValue()在缩小原始转换后,返回Float值作为long。static floatmax(float a, float b)返回两个float值中的较大值,就像通过调用Math.max一样 。static floatmin(float a, float b)返回两个float中的较小值,就像通过调用Math.min一样 。static floatparseFloat(String s)返回一个新float初始化为指定的代表的值String,如通过执行valueOf类的方法Float。shortshortValue()返回此值Float为short的基本收缩转换后。static floatsum(float a, float b)根据+运算符,将两个float值一起添加。static StringtoHexString(float f)返回float参数的十六进制字符串表示形式。StringtoString()返回此Float对象的字符串表示形式。static StringtoString(float f)返回float参数的字符串表示形式。static FloatvalueOf(float f)返回一个表示float值的Float实例。static FloatvalueOf(String s)返回一个Float对象,保存由参数字符串s表示的float值。
-
-
-
字段详细信息
-
POSITIVE_INFINITY
public static final float POSITIVE_INFINITY
持有float型正无穷大的float。 它等于由Float.intBitsToFloat(0x7f800000)返回的值。- 另请参见:
- Constant Field Values
-
NEGATIVE_INFINITY
public static final float NEGATIVE_INFINITY
一个持有float型的负无穷大的float。 它等于Float.intBitsToFloat(0xff800000)返回的值。- 另请参见:
- Constant Field Values
-
NaN
public static final float NaN
一个持有非数字(NaN)值的常数,类型为float。 它相当于由Float.intBitsToFloat(0x7fc00000)返回的值。- 另请参见:
- Constant Field Values
-
MAX_VALUE
public static final float MAX_VALUE
的常量保持型的最大正的有限值float,(2-2 -23)A·2 127。 它等于十六进制浮点0x1.fffffeP+127f,也等于Float.intBitsToFloat(0x7f7fffff)。- 另请参见:
- Constant Field Values
-
MIN_NORMAL
public static final float MIN_NORMAL
常数保持类型为float的最小正常值,2 -126 。 它等于十六进制浮点数文字0x1.0p-126f,也等于Float.intBitsToFloat(0x00800000)。- 从以下版本开始:
- 1.6
- 另请参见:
- Constant Field Values
-
MIN_VALUE
public static final float MIN_VALUE
一个常数保持最小的正非零值,类型为float-149 。 它等于十六进制浮点0x0.000002P-126f,也等于Float.intBitsToFloat(0x1)。- 另请参见:
- Constant Field Values
-
MAX_EXPONENT
public static final int MAX_EXPONENT
最大指数有限的float变量可能有。 它等于Math.getExponent(Float.MAX_VALUE)返回的值。- 从以下版本开始:
- 1.6
- 另请参见:
- Constant Field Values
-
MIN_EXPONENT
public static final int MIN_EXPONENT
最小指数一个归一化的float变量可能有。 它等于由Math.getExponent(Float.MIN_NORMAL)返回的值。- 从以下版本开始:
- 1.6
- 另请参见:
- Constant Field Values
-
SIZE
public static final int SIZE
用于表示float值的位数。- 从以下版本开始:
- 1.5
- 另请参见:
- Constant Field Values
-
BYTES
public static final int BYTES
用于表示float值的字节数。- 从以下版本开始:
- 1.8
- 另请参见:
- Constant Field Values
-
-
构造方法详细信息
-
Float
@Deprecated(since="9") public Float(float value)
构造一个新分配的Float对象,该对象表示原语float参数。- 参数
-
value- 值由Float表示。
-
Float
@Deprecated(since="9") public Float(double value)
构造新分配的Float对象,该对象表示转换为类型为float的参数。- 参数
-
value- 要由Float表示的值。
-
Float
@Deprecated(since="9") public Float(String s) throws NumberFormatException
构造新分配的Float对象,该对象表示由字符串表示的类型为float的浮点值。 该字符串转换为float值,如同通过valueOf方法一样。- 参数
-
s- 要转换为Float的字符串。 - 异常
-
NumberFormatException- 如果字符串不包含可解析的数字。
-
-
方法详细信息
-
toString
public static String toString(float f)
返回float参数的字符串表示形式。 下面提到的所有字符都是ASCII字符。- 如果参数是NaN,结果是字符串“
NaN”。 - 否则,结果是表示参数的符号和大小(绝对值)的字符串。 如果符号为负,则结果的第一个字符为“
-”('\u002D'); 如果符号为正,则结果中不会出现符号字符。 至于幅度m :- 如果m是无穷大,它由字符
"Infinity"表示; 因此,正无穷大产生结果"Infinity"和负无穷大产生结果"-Infinity"。 - 如果m为零,则由字符
"0.0"表示; 因此,负零产生结果"-0.0",正零产生结果"0.0"。 - 如果m大于或等于10 -3但小于10 7 ,则表示为m的整数部分,十进制形式,不带前导零,后跟“
.”('\u002E'),后跟一个或多个表示m的小数部分的十进制数字。 - 如果m小于10 -3或大于或等于10 7 ,则表示为所谓的“计算机科学记数法”。 设n是唯一的整数,使得10N的‰¤ 米 <10 N + 1; 然后让一个是m的精确算术商和10 牛顿 ,使1个≤ 一个 <10.然后将大小被表示为a的整数部分,作为一个单一的十进制数字,后跟“
.”('\u002E'),再后面是表示一个小数部分十进制数字,后面跟有字母“E”('\u0045'),接着为十进制整数n的表示,作为由该方法制备Integer.toString(int)。
- 如果m是无穷大,它由字符
float相邻值所需要的数量之外,还需要多达数位数。 也就是说,假设x是由用于有限非零参数f的此方法生成的十进制表示形式表示的确切数学值。 那么f必须是最接近x的float值; 或者如果两个float值同样接近于x ,则f必须是其中之一,并且f的有效数的最低有效位必须为0。要创建浮点值的本地化字符串表示,请使用
NumberFormat的子类。- 参数
-
f- 要转换的浮点数。 - 结果
- 参数的字符串表示形式。
- 如果参数是NaN,结果是字符串“
-
toHexString
public static String toHexString(float f)
返回float参数的十六进制字符串表示形式。 下面提到的所有字符都是ASCII字符。- 如果参数是NaN,结果是字符串“
NaN”。 - 否则,结果是表示参数的符号和大小(绝对值)的字符串。 如果符号为负,则结果的第一个字符为“
-”('\u002D'); 如果符号为正,则结果中不会出现符号字符。 至于幅度m :- 如果m是无穷大,它由字符串
"Infinity"表示; 因此,正无穷大产生结果"Infinity"和负无穷大产生结果"-Infinity"。 - 如果m为零,则由字符串
"0x0.0p0"表示; 因此,负零产生结果"-0x0.0p0",正零产生结果"0x0.0p0"。 - 如果m是具有归一化表示的
float值,则使用子字符串来表示有效float和指数字段。 有效数字由字符"0x1."表示,后面是有意义数据的其余部分的小写十六进制表示形式作为分数。 删除十六进制表示中的尾随零,除非所有数字都为零,在这种情况下使用单个零。 接下来,指数由"p"表示,后跟无偏差指数的十进制字符串,就像通过对指数值调用Integer.toString产生的。 - 如果m是具有亚正态表示的
float值,则有效"0x0."由字符"0x0."表示,后面是有效数的其余部分的十六进制表示作为分数。 删除十六进制表示中的尾随零。 接下来,指数由"p-126"表示。 请注意,在异常有效位数中必须至少有一个非零数字。
- 如果m是无穷大,它由字符串
1.00x1.0p0-1.0-0x1.0p02.00x1.0p13.00x1.8p10.50x1.0p-10.250x1.0p-2Float.MAX_VALUE0x1.fffffep127Minimum Normal Value0x1.0p-126Maximum Subnormal Value0x0.fffffep-126Float.MIN_VALUE0x0.000002p-126- 参数
-
f- 要转换的float。 - 结果
- 参数的十六进制字符串表示形式。
- 从以下版本开始:
- 1.5
- 如果参数是NaN,结果是字符串“
-
valueOf
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.HexDigits -
0XHexDigitsopt.HexDigits
- BinaryExponent:
- BinaryExponentIndicator SignedInteger
- BinaryExponentIndicator:
-
p -
P
s不具有的floatValue的形式,那么NumberFormatException被抛出。 否则,s被认为是在通常的“计算机科学记谱法”中以精确的十六进制值表示精确的十进制值; 这个精确的数值然后在概念上转换为“无限精确”二进制值,然后通过IEEE 754浮点运算的通常的圆到最近的规则进行舍入,以类型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- 如果字符串不包含可解析的数字。
-
valueOf
public static Float valueOf(float f)
返回表示指定的float值的Float实例。 如果不需要新的Float实例,则该方法通常优先于构造函数Float(float)使用 ,因为该方法可能通过缓存经常请求的值而产生明显更好的空间和时间性能。- 参数
-
f- 一个浮点值。 - 结果
-
一个
Float实例,代表f。 - 从以下版本开始:
- 1.5
-
parseFloat
public static float parseFloat(String s) throws NumberFormatException
返回一个新float初始化为指定的代表的值String,如通过执行valueOf类的方法Float。- 参数
-
s- 要解析的字符串。 - 结果
-
由字符串参数表示的
float值。 - 异常
-
NullPointerException- 如果字符串为空 -
NumberFormatException- 如果字符串不包含可解析的float。 - 从以下版本开始:
- 1.2
- 另请参见:
-
valueOf(String)
-
isNaN
public static boolean isNaN(float v)
返回true如果指定的号码是一个不一个数字(NaN)值,false否则。- 参数
-
v- 要测试的值。 - 结果
-
true如果参数是NaN; 否则为false。
-
isInfinite
public static boolean isInfinite(float v)
如果指定的数字无限大,则返回true,否则为false。- 参数
-
v- 要测试的值。 - 结果
-
true如果参数是正无穷大或负无穷大; 否则为false。
-
isFinite
public static boolean isFinite(float f)
如果参数是有限浮点值,则返回true; 返回false(对于NaN和无穷大参数)。- 参数
-
f- 要测试的float值 - 结果
-
true如果参数是一个有限的浮点值,false否则。 - 从以下版本开始:
- 1.8
-
isNaN
public boolean isNaN()
返回true如果此Float值是不是非数字(NAN),false否则。- 结果
-
true如果该对象表示的值是NaN; 否则为false。
-
isInfinite
public boolean isInfinite()
返回true如果这个Float值是无限大的,否则为false。- 结果
-
true如果由该对象表示的值是正无穷大或负无穷大; 否则为false。
-
toString
public String toString()
返回此Float对象的字符串表示形式。 由该对象表示的原语float值将转换为String正如一个参数的方法toString。- 重写:
-
toString在Object - 结果
-
这个对象的
String表示。 - 另请参见:
-
toString(float)
-
byteValue
public byte byteValue()
返回此值Float为byte的基本收缩转换后。
-
shortValue
public short shortValue()
在缩小原始转换后,返回Float的值作为short。- 重写:
-
shortValue在类Number - 结果
-
由该对象表示的
float值转换为short型 - 从以下版本开始:
- 1.1
- See The Java™ Language Specification:
- 5.1.3缩小原始转换
-
intValue
public int intValue()
返回此的值Float作为int的基本收缩转换之后。
-
longValue
public long longValue()
在缩小原始转换后,将此Float值作为long返回。
-
floatValue
public float floatValue()
返回此Float对象的float值。- Specified by:
-
floatValue在类Number - 结果
-
这个对象代表的
float值
-
doubleValue
public double doubleValue()
在扩展原始转换后,返回Float的值作为double。- Specified by:
-
doubleValue在Number - 结果
-
由该对象表示的
float值转换为double型 - See The Java™ Language Specification:
- 5.1.2扩大原始转换
-
hashCode
public int hashCode()
返回此Float对象的哈希码。 结果是完全由方法floatToIntBits(float)产生的由该Float对象表示的原语float值的整数位表示。- 重写:
-
hashCode在类Object - 结果
- 该对象的哈希码值。
- 另请参见:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
-
hashCode
public static int hashCode(float value)
返回一个float值的哈希码; 兼容Float.hashCode()。- 参数
-
value- 哈希值 - 结果
-
一个
float值的哈希码值。 - 从以下版本开始:
- 1.8
-
equals
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)
- 如果
-
floatToIntBits
public static int floatToIntBits(float value)
根据IEEE 754浮点“单格式”位布局返回指定浮点值的表示。位31(由掩码
0x80000000选择的位)表示浮点数的符号。 位30-23(由掩码0x7f800000选择的位)表示指数。 位22-0(由掩码0x007fffff选择的位)表示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选择的位)表示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是可以从参数计算的三个值:
那么浮点结果等于数学表达式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参数完全相同的位模式的floatNaN。 IEEE 754区分了两种NaN,安静的NaN和信号NaN 。 两种NaN之间的区别通常在Java中不可见。 信号NaN的算术运算将它们变成具有不同但通常相似的位模式的安静的NaN。 然而,在某些处理器上,仅仅复制信号NaN也执行该转换。 特别地,复制信令NaN以将其返回到调用方法可以执行该转换。 所以intBitsToFloat可能无法返回一个float的信号NaN位模式。 因此,对于int值,floatToRawIntBits(intBitsToFloat(start))可能不等于start。 此外,哪些特定位模式表示信令NaN是平台依赖的; 尽管所有NaN位模式,安静或信令都必须位于上面确定的NaN范围内。- 参数
-
bits- 一个整数。 - 结果
-
float具有相同位模式的浮点值。
-
compareTo
public int compareTo(Float anotherFloat)
数字比较两个Float对象。 当应用于原始的float值时,通过此方法执行的比较有两种方式与Java语言数值比较运算符(<, <=, ==, >=, >)执行的比较不同:-
Float.NaN被认为是等于自己和大于所有其他float值(包括Float.POSITIVE_INFINITY)。 -
0.0f被这种方法考虑大于-0.0f。
Float对象的自然排序 与equals一致 。- Specified by:
-
compareTo在接口Comparable<Float> - 参数
-
anotherFloat- 要比较的Float。 - 结果
-
值
0如果anotherFloat在数字上等于这个Float; 的值小于0,如果这Float是数值上小于anotherFloat; 和大于一个值0,如果这Float在数值上大于anotherFloat。 - 从以下版本开始:
- 1.2
- 另请参见:
-
Comparable.compareTo(Object)
-
-
compare
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; 且大于值0如果f1在数值上大于f2。 - 从以下版本开始:
- 1.4
-
sum
public static float sum(float a, float b)根据+运算符将两个float值一起添加。- 参数
-
a- 第一个操作数 -
b- 第二个操作数 - 结果
-
总和为
a和b - 从以下版本开始:
- 1.8
- 另请参见:
-
BinaryOperator - See The Java™ Language Specification:
- 4.2.4浮点运算
-
max
public static float max(float a, float b)返回两个float中的较大值,如同通过调用Math.max一样 。- 参数
-
a- 第一个操作数 -
b- 第二个操作数 - 结果
-
较大的
a和b - 从以下版本开始:
- 1.8
- 另请参见:
-
BinaryOperator
-
min
public static float min(float a, float b)返回两个float中的较小值,就像通过调用Math.min一样 。- 参数
-
a- 第一个操作数 -
b- 第二个操作数 - 结果
-
较小的
a和b - 从以下版本开始:
- 1.8
- 另请参见:
-
BinaryOperator
-
-