Module java.base
Package java.lang

Class Float

所有已实现的接口:
Serializable, Comparable<Float>, Constable, ConstantDesc

public final class Float extends Number implements Comparable<Float>, Constable, ConstantDesc
Float类将原始类型float的值封装在对象中。 Float类型的对象包含一个字段,其类型为float

此外,该类提供了几种方法,用于将float转换为String,将String转换为float,以及在处理float时有用的其他常量和方法。

这是一个基于值的类;程序员应将相等的实例视为可互换的,并且不应将实例用于同步,否则可能会发生不可预测的行为。例如,在将来的版本中,同步可能会失败。

浮点数的相等性、等价性和比较

java.lang.Double类有一个关于浮点值的相等性、等价性和比较的讨论,同样适用于float值。
自版本:
1.0
参见:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static 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
    NaN
    一个常量,保存float类型的非数字(NaN)值。
    static final float
    一个常量,保存float类型的负无穷大。
    static final float
    一个常量,保存float类型的正无穷大。
    static final int
    float值的尾数中的位数。
    static final int
    用于表示float值的位数。
    static final Class<Float>
    表示原始类型floatClass实例。
  • Constructor Summary

    Constructors
    Constructor
    Description
    Float(double value)
    已弃用,将来会移除: 该API元素可能会在将来的版本中被移除。
    很少适合使用此构造函数。
    Float(float value)
    已弃用,将来会移除: 该API元素可能会在将来的版本中被移除。
    很少适合使用此构造函数。
    已弃用,将来会移除: 该API元素可能会在将来的版本中被移除。
    很少适合使用此构造函数。
  • Method Summary

    Modifier and Type
    Method
    Description
    byte
    返回经过缩小原始转换后的此Float值的byte值。
    static int
    compare(float f1, float f2)
    比较两个指定的float值。
    int
    compareTo(Float anotherFloat)
    数值上比较两个Float对象。
    返回包含此实例的名义描述符的Optional,即实例本身。
    double
    返回经过扩展原始转换后的此Float值的double值。
    boolean
    equals(Object obj)
    将此对象与指定对象进行比较。
    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
    返回此Float对象的哈希码。
    static int
    hashCode(float value)
    返回float值的哈希码;与Float.hashCode()兼容。
    static float
    intBitsToFloat(int bits)
    返回给定位表示的float值。
    int
    返回经过缩小原始转换后的此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
    返回由Float类的valueOf方法执行的指定String表示的新float值。
    将此实例解析为ConstantDesc,其结果是实例本身。
    short
    返回经过缩小原始转换后的此Float值的short值。
    static float
    sum(float a, float b)
    将两个float值相加,如+运算符所示。
    static String
    toHexString(float f)
    返回float参数的十六进制字符串表示。
    返回此Float对象的字符串表示。
    static String
    toString(float f)
    返回float参数的字符串表示。
    static Float
    valueOf(float f)
    返回表示指定float值的Float实例。
    static Float
    返回包含由参数字符串s表示的float值的Float对象。

    Methods declared in class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • 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 PRECISION
      float值的尾数中的位数。这是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

      public static final Class<Float> TYPE
      表示原始类型floatClass实例。
      自:
      1.1
  • Constructor Details

    • Float

      @Deprecated(since="9", forRemoval=true) public Float(float value)
      Deprecated, for removal: This API element is subject to removal in a future version.
      It is rarely appropriate to use this constructor. The static factory valueOf(float) is generally a better choice, as it is likely to yield significantly better space and time performance.
      构造一个新分配的Float对象,该对象表示原始float参数。
      参数:
      value - 要由Float表示的值。
    • Float

      @Deprecated(since="9", forRemoval=true) public Float(double value)
      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 method valueOf(float) method as follows: Float.valueOf((float)value).
      构造一个新分配的Float对象,该对象表示转换为类型float的参数。
      参数:
      value - 要由Float表示的值。
    • Float

      @Deprecated(since="9", forRemoval=true) public Float(String s) throws NumberFormatException
      Deprecated, for removal: This API element is subject to removal in a future version.
      It is rarely appropriate to use this constructor. Use parseFloat(String) to convert a string to a float primitive, or use valueOf(String) to convert a string to a Float object.
      构造一个新分配的Float对象,该对象表示由字符串表示的float值。该字符串被转换为float值,就像通过valueOf方法一样。
      参数:
      s - 要转换为Float的字符串。
      抛出:
      NumberFormatException - 如果字符串不包含可解析的数字。
  • Method Details

    • 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为正且有限。它被转换为两个阶段的字符串:
          • 选择小数:选择一个明确定义的小数dm来表示m。这个小数(几乎总是)是根据IEEE 754浮点算术的四舍五入到最近的舍入策略将m舍入到m的最短小数。
          • 格式化为字符串:小数dm被格式化为一个字符串,可以是普通的或计算机化的科学记数法,具体取决于它的值。

      一个小数是形式为s×10i的数字,其中s > 0和i是不是10的倍数的唯一整数。这些整数分别是小数的尾数指数。小数的长度是满足10n-1s < 10n的(唯一的)正整数n

      有限正数m的小数dm定义如下:

      • R为所有根据IEEE 754浮点算术的通常四舍五入到最近舍入策略将m舍入的小数集合。
      • pR中所有小数的最小长度。
      • p ≥ 2时,令TR中长度为p的所有小数的集合。否则,令T为长度为1或2的所有小数的集合。
      • dm定义为T中距离m最近的小数。或者如果T中有两个这样的小数,则选择具有偶数尾数的小数。

      然后格式化(唯一)选择的小数dm。让sin分别是小数dm的尾数、指数和长度。此外,让e = n + i - 1,让s1sns的常规小数展开。注意s1 ≠ 0和sn ≠ 0。下面,小数点'.''\u002E',指数标识符'E''\u0045'

      • 情况 -3 ≤ e < 0:将dm格式化为0.00s1sn,其中小数点和s1之间恰好有-(n + i)个零。例如,123 × 10-4格式化为0.0123
      • 情况 0 ≤ e < 7:
        • 子情况 i ≥ 0:将dm格式化为s1sn00.0,其中sn和小数点之间恰好有i个零。例如,123 × 102格式化为12300.0
        • 子情况 i < 0:将dm格式化为s1sn+i.sn+i+1sn,其中小数点右侧恰好有-i位数字。例如,123 × 10-1格式化为12.3
      • 情况 e < -3或e ≥ 7:使用计算机化科学记数法格式化dm。这里e按照Integer.toString(int)的方式格式化。
        • 子情况 n = 1:将dm格式化为s1.0Ee。例如,1 × 1023格式化为1.0E23
        • 子情况 n > 1:将dm格式化为s1.s2snEe。例如,123 × 10-21格式化为1.23E-19

      要创建浮点值的本地化字符串表示,请使用NumberFormat的子类。

      参数:
      f - 要转换的float
      返回:
      参数的字符串表示。
    • 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值,则使用子字符串来表示尾数和指数字段。尾数由字符"0x1."表示,后跟其余尾数的小写十六进制表示作为分数。在十六进制表示中去除尾随零,除非所有数字都为零,此时使用单个零。接下来,指数由"p"表示,后跟无偏指数的十进制字符串,就像通过对指数值调用Integer.toString一样。
        • 如果m是具有次正规表示的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
      最小正规值 0x1.0p-126
      最大次正规值 0x0.
      参数:
      f - 要转换的float
      返回:
      参数的十六进制字符串表示。
      自版本:
      1.5
    • valueOf

      public static Float valueOf(String s) throws NumberFormatException
      返回一个包含由参数字符串s表示的float值的Float对象。

      如果snull,则会抛出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
      其中SignFloatingPointLiteralHexNumeralHexDigitsSignedIntegerFloatTypeSuffix的定义与Java语言规范的词法结构部分中定义的相同,但不接受数字之间的下划线。如果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,然后doublefloat,并不等同于直接将字符串转换为float。例如,如果首先转换为中间double,然后转换为float,字符串
      "1.00000017881393421514957253748434595763683319091796875001d"
      将导致float1.0000002f;如果字符串直接转换为float,结果为1.0000001f

      为了避免在无效字符串上调用此方法并抛出NumberFormatExceptionDouble.valueOf的文档列出了可用于筛选输入的正则表达式。

      参数:
      s - 要解析的字符串。
      返回:
      包含由String参数表示的值的Float对象。
      抛出:
      NumberFormatException - 如果字符串不包含可解析的数字。
    • valueOf

      public static Float valueOf(float f)
      返回表示指定float值的Float实例。如果不需要新的Float实例,则通常应优先使用此方法,因为通过缓存频繁请求的值,此方法可能会获得显着更好的空间和时间性能。
      参数:
      f - 一个float值。
      返回:
      表示fFloat实例。
      自版本:
      1.5
    • parseFloat

      public static float parseFloat(String s) throws NumberFormatException
      返回一个新的float,其值由指定StringvalueOf方法执行而初始化。
      参数:
      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

      public String toString()
      返回此Float对象的字符串表示。由此对象表示的基本float值将被转换为String,就像通过一个参数的toString方法一样。
      覆盖:
      toString 在类 Object
      返回:
      此对象的String表示。
      参见:
    • 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()
      返回此Float对象的哈希码。结果是由此Float对象表示的原始float值的整数位表示,与方法 floatToIntBits(float) 生成的完全相同。
      覆盖:
      hashCode 在类 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对象。对于此目的,仅当应用于每个值时方法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,则结果为负无穷大。

      如果参数在范围0x7f8000010x7fffffff或范围0xff8000010xffffffff内的任何值,则结果为NaN。Java 提供的任何 IEEE 754 浮点操作都无法区分具有不同位模式的相同类型的两个NaN值。不同的NaN值只能通过使用Float.floatToRawIntBits方法来区分。

      在所有其他情况下,让sem是可以从参数计算出的三个值:

      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参数完全相同位模式的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。
      二进制16格式float16ToFloat(short)方法中有更详细的讨论。
      API注释:
      此方法对应于IEEE 754中定义的从二进制32格式到二进制16格式的convertFormat操作。此方法的操作类似于原始缩小转换(JLS 5.1.3)。
      参数:
      f - 要转换为二进制16的float
      返回:
      与参数最接近的浮点二进制16值,编码为short
      自:
      20
    • compareTo

      public int compareTo(Float anotherFloat)
      按数字比较两个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
    • 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 - 第二个操作数
      返回:
      ab的和
      参见Java语言规范:
      4.2.4 浮点运算
      自:
      1.8
      另请参见:
    • max

      public static float max(float a, float b)
      返回两个float值中较大的值,就像调用Math.max一样。
      API注释:
      此方法对应于IEEE 754中定义的最大操作。
      参数:
      a - 第一个操作数
      b - 第二个操作数
      返回:
      ab中较大的值
      自:
      1.8
      另请参见:
    • min

      public static float min(float a, float b)
      返回两个float值中较小的值,如同调用Math.min一样。
      API注释:
      此方法对应于IEEE 754中定义的最小操作。
      参数:
      a - 第一个操作数
      b - 第二个操作数
      返回:
      ab中较小的值
      自:
      1.8
      另请参见:
    • describeConstable

      public Optional<Float> describeConstable()
      返回包含此实例的名义描述符的Optional,即实例本身。
      指定者:
      describeConstable 在接口 Constable
      返回:
      描述Float实例的Optional
      自:
      12
    • resolveConstantDesc

      public Float resolveConstantDesc(MethodHandles.Lookup lookup)
      将此实例解析为ConstantDesc,其结果是实例本身。
      指定者:
      resolveConstantDesc 在接口 ConstantDesc
      参数:
      lookup - 忽略
      返回:
      Float实例
      自:
      12