java.lang.Object
|---java.lang.Number
|---|---java.lang.Float
public final class Float
extends Number
implements Comparable<Float>
Float 类将原始类型 float 的值包装在对象中。 Float 类型的对象包含一个类型为 float 的字段。
此外,该类提供了几种将浮点数转换为字符串和将字符串转换为浮点数的方法,以及在处理浮点数时有用的其他常量和方法。
修饰符和类型 | 字段 | 描述 |
---|---|---|
static int | BYTES | 用于表示浮点值的字节数。 |
static int | MAX_EXPONENT | 有限浮点变量可能具有的最大指数。 |
static float | MAX_VALUE | 一个保持浮点类型的最大正有限值的常数,(2-2-23)·2127。 |
static int | MIN_EXPONENT | 标准化浮点变量可能具有的最小指数。 |
static float | MIN_NORMAL | 一个常量,保持浮点类型的最小正正常值,2-126。 |
static float | MIN_VALUE | 一个保持浮点类型的最小正非零值的常量,2-149。 |
static float | NaN | 一个保持浮点类型的非数字 (NaN) 值的常量。 |
static float | NEGATIVE_INFINITY | 一个保持浮点类型负无穷大的常数。 |
static float | POSITIVE_INFINITY | 一个保持浮点型正无穷大的常数。 |
static int | SIZE | 用于表示浮点值的位数。 |
static ClassFloat | TYPE | 表示基本类型 float 的 Class 实例。 |
构造函数 | 描述 |
---|---|
Float(double value) | 构造一个新分配的 Float 对象,该对象表示转换为 float 类型的参数。 |
Float(float value) | 构造一个新分配的 Float 对象,该对象表示原始浮点参数。 |
Float(String s) | 构造一个新分配的 Float 对象,该对象表示由字符串表示的 float 类型的浮点值。 |
修饰符和类型 | 方法 | 描述 |
---|---|---|
byte | byteValue() | 在缩小原语转换后,将此 Float 的值作为字节返回。 |
static int | compare(float f1, float f2) | 比较两个指定的浮点值。 |
int | compareTo(Float anotherFloat) | 以数字方式比较两个 Float 对象。 |
double | doubleValue() | 在扩大原始转换后,将此浮点数的值作为双精度值返回。 |
boolean | equals(Object obj) | 将此对象与指定对象进行比较。 |
static int | floatToIntBits(float value) | 根据 IEEE 754 浮点“单一格式”位布局返回指定浮点值的表示。 |
static int | floatToRawIntBits(float value) | 根据 IEEE 754 浮点“单一格式”位布局返回指定浮点值的表示,保留非数字 (NaN) 值。 |
float | floatValue() | 返回此 Float 对象的浮点值。 |
int | hashCode() | 返回此 Float 对象的哈希码。 |
static int | hashCode(float value) | 返回浮点值的哈希码; 与 Float.hashCode() 兼容。 |
static float | intBitsToFloat(int bits) | 返回对应于给定位表示的浮点值。 |
int | intValue() | 在缩小原始转换后,将此 Float 的值作为 int 返回。 |
static boolean | isFinite(float f) | 如果参数是有限浮点值,则返回 true; 否则返回 false(对于 NaN 和无穷大参数)。 |
boolean | isInfinite() | 如果此 Float 值的大小无限大,则返回 true,否则返回 false。 |
static boolean | isInfinite(float v) | 如果指定的数字在数量级上无限大,则返回 true,否则返回 false。 |
boolean | isNaN() | 如果此浮点值是非数字 (NaN),则返回 true,否则返回 false。 |
static boolean | isNaN(float v) | 如果指定的数字是非数字 (NaN) 值,则返回 true,否则返回 false。 |
long | longValue() | 在缩小原始转换后将此浮点数的值作为 long 返回。 |
static float | max(float a, float b) | 返回两个浮点值中的较大者,就像调用 Math#max(float, float) 一样。 |
static float | min(float a, float b) | 返回两个浮点值中较小的一个,就像调用 Math#min(float, float) 一样。 |
static float | parseFloat(String s) | 返回一个新的浮点数,初始化为指定字符串表示的值,由 Float 类的 valueOf 方法执行。 |
short | shortValue() | 在缩小原始转换后,将此浮点数的值作为一个短整数返回。 |
static float | sum(float a, float b) | 根据 + 运算符将两个浮点值相加。 |
static String | toHexString(float f) | 返回浮点参数的十六进制字符串表示。 |
String | toString() | 返回此 Float 对象的字符串表示形式。 |
static String | toString(float f) | 返回 float 参数的字符串表示形式。 |
static Float | valueOf(float f) | 返回表示指定浮点值的 Float 实例。 |
static Float | valueOf(String s) | 返回一个 Float 对象,该对象包含由参数字符串 s 表示的浮点值。 |
从类 java.lang.Object 继承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
public static final int BYTES
用于表示浮点值的字节数。
public static final int MAX_EXPONENT
有限浮点变量可能具有的最大指数。 它等于 Math.getExponent(Float.MAX_VALUE) 返回的值。
public static final float MAX_VALUE
一个保持浮点类型的最大正有限值的常数,(2-2-23)·2127。 它等于十六进制浮点文字 0x1.fffffeP+127f,也等于 Float.intBitsToFloat(0x7f7fffff)。
public static final int MIN_EXPONENT
标准化浮点变量可能具有的最小指数。 它等于 Math.getExponent(Float.MIN_NORMAL) 返回的值。
public static final float MIN_NORMAL
一个常量,保持浮点类型的最小正正常值,2-126。 它等于十六进制浮点文字 0x1.0p-126f,也等于 Float.intBitsToFloat(0x00800000)。
public static final float MIN_VALUE
一个保持浮点类型的最小正非零值的常量,2-149。 它等于十六进制浮点文字 0x0.000002P-126f,也等于 Float.intBitsToFloat(0x1)。
public static final float NEGATIVE_INFINITY
一个保持浮点类型负无穷大的常数。 它等于 Float.intBitsToFloat(0xff800000) 返回的值。
public static final float NaN
一个保持浮点类型的非数字 (NaN) 值的常量。 它相当于 Float.intBitsToFloat(0x7fc00000) 返回的值。
public static final float POSITIVE_INFINITY
一个保持浮点型正无穷大的常数。 它等于 Float.intBitsToFloat(0x7f800000) 返回的值。
public static final int SIZE
用于表示浮点值的位数。
public static final ClassFloat TYPE
表示基本类型 float 的 Class 实例。
public Float(float value)
构造一个新分配的 Float 对象,该对象表示原始浮点参数。
参数:
参数名称 | 参数描述 |
---|---|
value | 浮点数表示的值。 |
public Float(double value)
构造一个新分配的 Float 对象,该对象表示转换为 float 类型的参数。
参数:
参数名称 | 参数描述 |
---|---|
value | 浮点数表示的值。 |
public Float(String s) throws NumberFormatException
构造一个新分配的 Float 对象,该对象表示由字符串表示的 float 类型的浮点值。 字符串被转换为浮点值,就像通过 valueOf 方法一样。
参数:
参数名称 | 参数描述 |
---|---|
s | 要转换为浮点数的字符串。 |
Throws:
Throw名称 | Throw描述 |
---|---|
NumberFormatException | 如果字符串不包含可解析的数字。 |
public static String toString(float f)
返回 float 参数的字符串表示形式。 下面提到的所有字符都是 ASCII 字符。
m:
m 或 a 的小数部分必须打印多少位? 必须至少有一个数字来表示小数部分,除此之外,必须有尽可能多的数字,但仅能将参数值与浮点类型的相邻值唯一区分开来。 也就是说,假设 x 是由该方法为有限非零参数 f 生成的十进制表示所表示的精确数学值。 那么 f 必须是最接近 x 的浮点值; 或者,如果两个浮点值同样接近 x,则 f 必须是其中之一,并且 f 的有效位的最低有效位必须为 0。
要创建浮点值的本地化字符串表示,请使用 NumberFormat 的子类。
参数:
参数名称 | 参数描述 |
---|---|
f | 要转换的浮点数。 |
返回:
参数的字符串表示。
public static String toHexString(float f)
返回浮点参数的十六进制字符串表示。 下面提到的所有字符都是 ASCII 字符。
m:
参数:
参数名称 | 参数描述 |
---|---|
f | 要转换的浮点数。 |
返回:
参数的十六进制字符串表示。
public static Float valueOf(String s) throws NumberFormatException
返回一个 Float 对象,该对象包含由参数字符串 s 表示的浮点值。
如果 s 为 null,则抛出 NullPointerException。
s 中的前导和尾随空白字符被忽略。就像使用 String#trim 方法一样删除空格;也就是说,ASCII 空格和控制字符都被删除了。 s 的其余部分应构成一个 FloatValue,如词法语法规则所述:
浮点值:
签署 NaN
Signopt Infinity
Signopt FloatingPointLiteral
Signopt HexFloatingPointLiteral
有符号整数
HexFloatingPointLiteral:
HexSignificand BinaryExponent FloatTypeSuffixopt
十六进制符号:
十六进制数
十六进制数。
0x 十六进制数字选择。十六进制数
0X 十六进制数字选择。十六进制数
二进制指数:
BinaryExponentIndicator 有符号整数
BinaryExponentIndicator:
p
其中 Sign、FloatingPointLiteral、HexNumeral、HexDigits、SignedInteger 和 FloatTypeSuffix 与《Java™ 语言规范》的词法结构部分中的定义相同,但数字之间不接受下划线。如果 s 不具有 FloatValue 的形式,则抛出 NumberFormatException。否则,s 被视为代表通常的“计算机科学记数法”中的精确十进制值或精确的十六进制值;然后,这个精确的数值在概念上被转换为“无限精确”的二进制值,然后通过 IEEE 754 浮点算术的通常舍入到最近的规则将其舍入为 float 类型,其中包括保留零值的符号。请注意,四舍五入规则也意味着溢出和下溢行为;如果 s 的精确值在量级上足够大(大于或等于 (MAX_VALUE + Math#ulp(float)/2),则四舍五入到浮点数将导致无穷大,并且如果 s 的精确值在量级上足够小(小于或等于MIN_VALUE/2),四舍五入到float会产生0,最后,四舍五入后返回一个代表这个float值的Float对象。
要解释浮点值的本地化字符串表示,请使用 NumberFormat 的子类。
请注意,尾随格式说明符、确定浮点文字类型的说明符(1.0f 是浮点值;1.0d 是双精度值)不会影响此方法的结果。也就是说,输入字符串的数值直接转换为目标浮点类型。一般来说,两步转换序列,字符串到双精度,然后是双精度到浮点数,并不等同于将字符串直接转换为浮点数。例如,如果先转换为中间双精度然后再转换为浮点数,则字符串“1.00000017881393421514957253748434595763683319091796875001d”会导致浮点值 1.0000002f;如果字符串直接转换为浮点数,则结果为 1.0000001f。
为避免在无效字符串上调用此方法并引发 NumberFormatException,Double#valueOf 的文档列出了可用于筛选输入的正则表达式。
参数:
参数名称 | 参数描述 |
---|---|
s | 要解析的字符串。 |
返回:
一个 Float 对象,保存由 String 参数表示的值。
Throws:
Throw名称 | Throw描述 |
---|---|
NumberFormatException | 如果字符串不包含可解析的数字。 |
public static Float valueOf(float f)
返回表示指定浮点值的 Float 实例。 如果不需要新的 Float 实例,则通常应优先使用此方法而不是构造函数 Float(float),因为此方法可能会通过缓存频繁请求的值来显着提高空间和时间性能。
参数:
参数名称 | 参数描述 |
---|---|
f | 一个浮点值。 |
返回:
代表 f 的 Float 实例。
public static float parseFloat(String s) throws NumberFormatException
返回一个新的浮点数,初始化为指定字符串表示的值,由 Float 类的 valueOf 方法执行。
参数:
参数名称 | 参数描述 |
---|---|
s | 要解析的字符串。 |
返回:
由字符串参数表示的浮点值。
Throws:
Throw名称 | Throw描述 |
---|---|
NullPointerException | 如果字符串为空 |
NumberFormatException | 如果字符串不包含可解析的浮点数。 |
public static boolean isNaN(float v)
如果指定的数字是非数字 (NaN) 值,则返回 true,否则返回 false。
参数:
参数名称 | 参数描述 |
---|---|
v | 要测试的值。 |
返回:
如果参数为 NaN,则为 true; 否则为假。
public static boolean isInfinite(float v)
如果指定的数字在数量级上无限大,则返回 true,否则返回 false。
参数:
参数名称 | 参数描述 |
---|---|
v | 要测试的值。 |
返回:
如果参数是正无穷大或负无穷大,则为真; 否则为假。
public static boolean isFinite(float f)
如果参数是有限浮点值,则返回 true; 否则返回 false(对于 NaN 和无穷大参数)。
参数:
参数名称 | 参数描述 |
---|---|
f | 要测试的浮点值 |
返回:
如果参数是有限浮点值,则为 true,否则为 false。
public boolean isNaN()
如果此浮点值是非数字 (NaN),则返回 true,否则返回 false。
返回:
如果此对象表示的值为 NaN,则为 true; 否则为假。
public boolean isInfinite()
如果此 Float 值的大小无限大,则返回 true,否则返回 false。
返回:
如果此对象表示的值是正无穷大或负无穷大,则为真; 否则为假。
public String toString()
返回此 Float 对象的字符串表示形式。 由该对象表示的原始浮点值完全转换为字符串,就好像通过一个参数的 toString 方法一样。
覆盖:
类 Object 中的 toString
返回:
此对象的字符串表示形式。
public byte byteValue()
在缩小原语转换后,将此 Float 的值作为字节返回。
覆盖:
类 Number 中的 byteValue
返回:
此对象表示的浮点值转换为字节类型
public short shortValue()
在缩小原始转换后,将此浮点数的值作为一个短整数返回。
覆盖:
类 Number 中的 shortValue
返回:
此对象表示的浮点值转换为 short 类型
public int intValue()
在缩小原始转换后,将此 Float 的值作为 int 返回。
指定者:
类 Number 中的 intValue
返回:
此对象表示的浮点值转换为 int 类型
public long longValue()
在缩小原始转换后将此浮点数的值作为 long 返回。
指定者:
类 Number 中的 longValue
返回:
此对象表示的浮点值转换为 long 类型
public float floatValue()
返回此 Float 对象的浮点值。
指定者:
类 Number 中的 floatValue
返回:
此对象表示的浮点值
public double doubleValue()
在扩大原始转换后,将此浮点数的值作为双精度值返回。
指定者:
类 Number 中的 doubleValue
返回:
此对象表示的浮点值转换为 double 类型
public int hashCode()
返回此 Float 对象的哈希码。 结果是此 Float 对象表示的原始浮点值的整数位表示,完全由方法 floatToIntBits(float) 生成。
覆盖:
类 Object 中的 hashCode
返回:
此对象的哈希码值。
public static int hashCode(float value)
返回浮点值的哈希码; 与 Float.hashCode() 兼容。
参数:
参数名称 | 参数描述 |
---|---|
value | 哈希值 |
返回:
浮点值的哈希码值。
public boolean equals(Object obj)
将此对象与指定对象进行比较。 当且仅当参数不为 null 并且是表示浮点数的 Float 对象时,结果才为真,该浮点数与该对象表示的浮点数具有相同的值。 为此,当且仅当方法 floatToIntBits(float) 在应用于每个浮点值时返回相同的 int 值时,才认为两个浮点值相同。
请注意,在大多数情况下,对于 Float 类的两个实例 f1 和 f2,f1.equals(f2) 的值当且仅当
f1.floatValue() == f2.floatValue()
也有值 true。 但是,有两个例外:
此定义允许哈希表正常运行。
覆盖:
类 Object 中的等于
参数:
参数名称 | 参数描述 |
---|---|
obj | 要比较的对象 |
返回:
如果对象相同,则为 true; 否则为假。
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 | 一个浮点数。 |
返回:
表示浮点数的位。
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 | 一个浮点数。 |
返回:
表示浮点数的位。
public static float intBitsToFloat(int bits)
返回对应于给定位表示的浮点值。 根据 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;
那么浮点结果等于数学表达式s·m·2e-150的值。
请注意,此方法可能无法返回与 int 参数具有完全相同位模式的浮点 NaN。 IEEE 754 区分了两种 NaN,静默 NaN 和信令 NaN。这两种 NaN 之间的差异在 Java 中通常是不可见的。信号 NaN 的算术运算将它们变成安静的 NaN,具有不同但通常相似的位模式。但是,在某些处理器上,仅复制信号 NaN 也会执行该转换。特别是,复制一个信令 NaN 以将其返回给调用方法可以执行此转换。因此 intBitsToFloat 可能无法返回带有信号 NaN 位模式的浮点数。因此,对于某些 int 值,floatToRawIntBits(intBitsToFloat(start)) 可能不等于 start。此外,哪些特定的位模式代表信令 NaN 取决于平台;尽管所有 NaN 位模式,安静或信令,都必须在上面确定的 NaN 范围内。
参数:
参数名称 | 参数描述 |
---|---|
bits | 一个整数。 |
返回:
具有相同位模式的浮点值。
public int compareTo(Float anotherFloat)
以数字方式比较两个 Float 对象。 当应用于原始浮点值时,此方法执行的比较与 Java 语言数值比较运算符(<、<=、==、>=、>)执行的比较有两种不同之处:
这确保了此方法强加的 Float 对象的自然顺序与 equals 一致。
指定者:
接口 ComparableFloat 中的 compareTo
参数:
参数名称 | 参数描述 |
---|---|
anotherFloat | 要比较的浮点数。 |
返回:
如果 anotherFloat 在数值上等于此 Float,则值为 0; 如果此 Float 在数值上小于 anotherFloat,则值小于 0; 如果此浮点数在数值上大于另一个浮点数,则值大于 0。
public static int compare(float f1, float f2)
比较两个指定的浮点值。 返回的整数值的符号与调用将返回的整数的符号相同:
new Float(f1).compareTo(new Float(f2))
参数:
参数名称 | 参数描述 |
---|---|
f1 | 要比较的第一个浮点数。 |
f2 | 要比较的第二个浮点数 |
返回:
如果 f1 在数值上等于 f2,则值为 0; 如果 f1 在数值上小于 f2,则值小于 0; 如果 f1 在数值上大于 f2,则值大于 0。
public static float sum(float a, float b)
根据 + 运算符将两个浮点值相加。
参数:
参数名称 | 参数描述 |
---|---|
a | 第一个操作数 |
b | 第二个操作数 |
返回:
a 和 b 之和
public static float max(float a, float b)
返回两个浮点值中的较大者,就像调用 Math#max(float, float) 一样。
参数:
参数名称 | 参数描述 |
---|---|
a | 第一个操作数 |
b | 第二个操作数 |
返回:
a 和 b 中的较大者
public static float min(float a, float b)
返回两个浮点值中较小的一个,就像调用 Math#min(float, float) 一样。
参数:
参数名称 | 参数描述 |
---|---|
a | 第一个操作数 |
b | 第二个操作数 |
返回:
a 和 b 中较小的一个
备案信息: 粤ICP备15087711号-2
Copyright © 2008-2024 啊嘎哇在线工具箱 All Rights.
本站所有资料来源于网络,版权归原作者所有,仅作学习交流使用,如不慎侵犯了您的权利,请联系我们。