Module  java.base
软件包  java.lang

Class StrictMath



  • public final class StrictMath
    extends Object
    StrictMath包含执行基本数字运算的方法,如基本指数,对数,平方根和三角函数。

    为了确保Java程序的可移植性,该包中某些数字函数的定义要求它们产生与某些已发布算法相同的结果。 这些算法可从众所周知的网络库netlib作为包“Freely Distributable Math Library”, fdlibm 这些以C编程语言编写的算法然后被理解为遵循Java浮点运算规则的所有浮点运算来执行。

    Java数学库是针对fdlibm版本5.3定义的。 其中fdlibm为一个功能提供了多个定义(如acos ),请使用“IEEE 754核心功能”版本(驻留在名称以字母e开头的文件中)。 这需要方法fdlibm语义是sincostanasinacosatanexploglog10cbrtatan2powsinhcoshtanhhypotexpm1 ,并log1p

    该平台使用带有int和long基元类型的带符号二进制补码整数运算。 开发人员应该选择原始类型,以确保算术运算始终产生正确的结果,这在某些情况下意味着操作不会溢出计算值的范围。 最佳做法是选择原始类型和算法以避免溢出。 在情况下,大小为int或者long ,需要检测溢出错误,方法addExactsubtractExactmultiplyExact ,并toIntExact抛出ArithmeticException当结果溢出。 对于其他算术运算,如除法,绝对值,递增1,递减1,否定溢出仅在特定的最小值或最大值发生,并且应根据最小值或最大值进行检查。

    从以下版本开始:
    1.3
    • Field Summary

      Fields  
      Modifier and Type Field 描述
      static double E
      double值比任何其他的更接近 e ,自然对数的基础。
      static double PI
      比其他任何 pi更接近的值为 double ,圆周长与其直径的比率。
    • 方法摘要

      所有方法  静态方法  具体的方法 
      Modifier and Type 方法 描述
      static double abs​(double a)
      返回值为 double绝对值。
      static float abs​(float a)
      返回值为 float绝对值。
      static int abs​(int a)
      返回值为 int绝对值。
      static long abs​(long a)
      返回值为 long绝对值。
      static double acos​(double a)
      返回值的反余弦值; 返回的角度在0.0到pi的范围内。
      static int addExact​(int x, int y)
      返回其参数的总和,如果结果溢出一个 int ,则抛出异常。
      static long addExact​(long x, long y)
      返回其参数的总和,如果结果溢出一个 long ,则抛出异常。
      static double asin​(double a)
      返回值的正弦值; 返回角度在pi / 2到pi / 2的范围内。
      static double atan​(double a)
      返回值的反正切值; 返回角度在pi / 2到pi / 2的范围内。
      static double atan2​(double y, double x)
      返回从直角坐标(转换角度 theta xy )为极坐标 (R,θ-)。
      static double cbrt​(double a)
      返回 double值的多维数据集根。
      static double ceil​(double a)
      返回最小的(最接近负无穷大) double值,该值大于或等于该参数,并等于某个整数。
      static double copySign​(double magnitude, double sign)
      使用第二个浮点参数的符号返回第一个浮点参数。
      static float copySign​(float magnitude, float sign)
      使用第二个浮点参数的符号返回第一个浮点参数。
      static double cos​(double a)
      返回角度的三角余弦。
      static double cosh​(double x)
      返回 double值的双曲余弦值。
      static double exp​(double a)
      返回欧拉的数字 e提高到 double价值。
      static double expm1​(double x)
      返回 e x -1。
      static double floor​(double a)
      返回小于或等于参数的最大(最接近正无穷大)的 double值,并且等于数学整数。
      static int floorDiv​(int x, int y)
      返回小于或等于代数商的最大(最接近正无穷大) int值。
      static long floorDiv​(long x, int y)
      返回小于或等于代数商的最大(最接近正无穷大)的数值 long
      static long floorDiv​(long x, long y)
      返回小于或等于代数商的最大(最接近正无穷大) long值。
      static int floorMod​(int x, int y)
      返回 int参数的底模数。
      static int floorMod​(long x, int y)
      返回 longint参数的底模。
      static long floorMod​(long x, long y)
      返回 long参数的底模数。
      static double fma​(double a, double b, double c)
      返回三个参数的融合乘法加法; 也就是说,返回与第三个参数求和的前两个参数的确切乘积,然后舍入一次到最接近的double
      static float fma​(float a, float b, float c)
      返回三个参数的融合乘法加法; 也就是说,返回与第三个参数相加的前两个参数的确切乘积,然后舍入一次到最接近的float
      static int getExponent​(double d)
      返回在 double的表示中使用的无偏指数。
      static int getExponent​(float f)
      返回 float的表示中使用的无偏指数。
      static double hypot​(double x, double y)
      返回sqrt( x 2 + y 2 ),没有中间溢出或下溢。
      static double IEEEremainder​(double f1, double f2)
      根据IEEE 754标准计算两个参数的余数运算。
      static double log​(double a)
      返回 double值的自然对数(基数 e )。
      static double log10​(double a)
      返回 double值的基数10对数。
      static double log1p​(double x)
      返回参数和1的和的自然对数。
      static double max​(double a, double b)
      返回两个 double值中的较大值。
      static float max​(float a, float b)
      返回两个 float值中的较大值。
      static int max​(int a, int b)
      返回两个 int中的较大值。
      static long max​(long a, long b)
      返回两个 long中的较大值。
      static double min​(double a, double b)
      返回两个 double中的较小值。
      static float min​(float a, float b)
      返回两个 float中的较小值。
      static int min​(int a, int b)
      返回两个 int中的较小值。
      static long min​(long a, long b)
      返回两个 long中的较小值。
      static int multiplyExact​(int x, int y)
      返回参数的乘积,如果结果溢出一个 int ,则抛出异常。
      static long multiplyExact​(long x, int y)
      返回参数的乘积,如果结果溢出一个 long ,则抛出异常。
      static long multiplyExact​(long x, long y)
      返回参数的乘积,如果结果溢出一个 long ,则抛出异常。
      static long multiplyFull​(int x, int y)
      返回参数的确切数学积。
      static long multiplyHigh​(long x, long y)
      作为 long返回的两个64位因子的128位乘积中最显着的64位。
      static double nextAfter​(double start, double direction)
      返回与第二个参数方向相邻的第一个参数的浮点数。
      static float nextAfter​(float start, double direction)
      返回与第二个参数方向相邻的第一个参数的浮点数。
      static double nextDown​(double d)
      返回与负无穷大方向相邻的 d的浮点值。
      static float nextDown​(float f)
      返回与负无穷大方向相邻的 f的浮点值。
      static double nextUp​(double d)
      返回与正无穷大方向相邻的 d的浮点值。
      static float nextUp​(float f)
      返回与正无穷大方向相邻的 f的浮点值。
      static double pow​(double a, double b)
      将第一个参数的值返回到第二个参数的幂。
      static double random​()
      返回值为 double的正值,大于等于 0.0 ,小于 1.0
      static double rint​(double a)
      返回值与参数最接近的值为 double ,并且等于数学整数。
      static long round​(double a)
      返回参数中最接近的 long ,其中 long四舍五入为正无穷大。
      static int round​(float a)
      返回参数最接近的 int ,其中 int四舍五入为正无穷大。
      static double scalb​(double d, int scaleFactor)
      返回 d 2 scaleFactor舍入,就好像由单个正确四舍五入的浮点数乘以双重值组的成员。
      static float scalb​(float f, int scaleFactor)
      返回 f 2 scaleFactor四舍五入,如同由一个正确四舍五入的浮点数乘以浮点值集合的成员一样。
      static double signum​(double d)
      返回参数的signum函数; 如果参数为零,则为零,如果参数大于零则为1.0,如果参数小于零,则为-1.0。
      static float signum​(float f)
      返回参数的signum函数; 如果参数为零,则为零,如果参数大于零则为1.0f,如果参数小于零,则为-1.0f。
      static double sin​(double a)
      返回角度的三角正弦。
      static double sinh​(double x)
      返回一个 double的双曲正弦值。
      static double sqrt​(double a)
      返回 double值的正确舍入的正平方根。
      static int subtractExact​(int x, int y)
      返回参数的差异,如果结果溢出一个 int ,则抛出异常。
      static long subtractExact​(long x, long y)
      返回参数的差异,如果结果溢出一个 long ,则抛出异常。
      static double tan​(double a)
      返回角度的三角正切。
      static double tanh​(double x)
      返回 double值的双曲正切值。
      static double toDegrees​(double angrad)
      将以弧度测量的角度转换为以度为单位的近似等效角度。
      static int toIntExact​(long value)
      返回long参数的值; 如果值溢出一个int则抛出异常。
      static double toRadians​(double angdeg)
      将以度为单位的角度转换为以弧度测量的大致相等的角度。
      static double ulp​(double d)
      返回参数的ulp的大小。
      static float ulp​(float f)
      返回参数的ulp的大小。
    • 字段详细信息

      • E

        public static final double E
        double值比任何其他的更接近 e ,自然对数的基础。
        另请参见:
        Constant Field Values
      • PI

        public static final double PI
        double值比任何其他 pi更接近,圆周长与其直径的比率。
        另请参见:
        Constant Field Values
    • 方法详细信息

      • sin

        public static double sin​(double a)
        返回角度的三角正弦。 特殊情况:
        • 如果参数为NaN或无穷大,则结果为NaN。
        • 如果参数为零,则结果为与参数相同符号的零。
        参数
        a - 以弧度表示的角度。
        结果
        论证的正义。
      • cos

        public static double cos​(double a)
        返回角度的三角余弦。 特殊情况:
        • 如果参数为NaN或无穷大,则结果为NaN。
        参数
        a - 以弧度表示的角度。
        结果
        论证的余弦。
      • tan

        public static double tan​(double a)
        返回角度的三角正切。 特殊情况:
        • 如果参数为NaN或无穷大,则结果为NaN。
        • 如果参数为零,则结果为与参数相同符号的零。
        参数
        a - 以弧度表示的角度。
        结果
        争论的切线。
      • asin

        public static double asin​(double a)
        返回值的正弦值; 返回角度在pi / 2到pi / 2的范围内。 特殊情况:
        • 如果参数为NaN或其绝对值大于1,则结果为NaN。
        • 如果参数为零,则结果为与参数相同符号的零。
        参数
        a - 要返回正弦的值。
        结果
        争论的正弦。
      • acos

        public static double acos​(double a)
        返回值的反余弦值; 返回的角度在0.0到pi的范围内。 特例:
        • 如果参数为NaN或其绝对值大于1,则结果为NaN。
        参数
        a - 要返回的余弦值。
        结果
        论证的反余弦。
      • atan

        public static double atan​(double a)
        返回值的反正切值; 返回角度在pi / 2到pi / 2的范围内。 特殊情况:
        • 如果参数是NaN,那么结果是NaN。
        • 如果参数为零,则结果为与参数相同符号的零。
        参数
        a - 要返回的反正切值。
        结果
        论点的反正切。
      • toRadians

        public static double toRadians​(double angdeg)
        将以度为单位的角度转换为以弧度测量的大致相等的角度。 从度数到弧度的转换通常是不准确的。
        参数
        angdeg - 以度为单位的角度
        结果
        角度的测量值为 angdeg ,单位为弧度。
      • toDegrees

        public static double toDegrees​(double angrad)
        将以弧度测量的角度转换为以度为单位的近似等效角度。 从弧度到度的转换通常是不准确的; 用户应该指望cos(toRadians(90.0))到正好等于0.0
        参数
        angrad - 以弧度表示的角度
        结果
        测量角度为 angrad度。
      • exp

        public static double exp​(double a)
        返回欧拉的数字e提高到一个double价值。 特殊情况:
        • 如果参数是NaN,结果是NaN。
        • 如果参数为无穷大,则结果为正无穷大。
        • 如果参数为负无穷大,则结果为正零。
        参数
        a - 提高 e的指数。
        结果
        e a ,其中 e是自然对数的基数。
      • log

        public static double log​(double a)
        返回double值的自然对数(基数e )。 特殊情况:
        • 如果参数为NaN或小于零,则结果为NaN。
        • 如果参数为无穷大,则结果为正无穷大。
        • 如果参数为正零或负零,则结果为负无穷大。
        参数
        a - 一个值
        结果
        值ln a ,自然对数为 a
      • log10

        public static double log10​(double a)
        返回double值的基数10对数。 特殊情况:
        • 如果参数为NaN或小于零,则结果为NaN。
        • 如果参数为无穷大,则结果为正无穷大。
        • 如果参数为正零或负零,则结果为负无穷大。
        • 如果参数等于10 n,用于整数n,则结果为n。
        参数
        a - 一个值
        结果
        基数10对数为 a
        从以下版本开始:
        1.5
      • sqrt

        public static double sqrt​(double a)
        返回double值的正确舍入的正平方根。 特殊情况:
        • 如果参数为NaN或小于零,则结果为NaN。
        • 如果参数为无穷大,则结果为正无穷大。
        • 如果参数为正零或负零,则结果与参数相同。
        否则,结果是最接近参数值的真数学平方根的double值。
        参数
        a - 一个值。
        结果
        正平方根 a
      • cbrt

        public static double cbrt​(double a)
        返回double值的double根。 对于正有限xcbrt(-x) == -cbrt(x) ; 也就是说,负值的多边形根是该值的大小的立方根的负数。 特殊情况:
        • 如果参数是NaN,那么结果是NaN。
        • 如果参数是无限的,则结果是与参数具有相同符号的无穷大。
        • 如果参数为零,则结果为与参数相同符号的零。
        参数
        a - 一个值。
        结果
        立方根 a
        从以下版本开始:
        1.5
      • IEEEremainder

        public static double IEEEremainder​(double f1,
                                           double f2)
        根据IEEE 754标准计算两个参数的余数运算。 余数的算术值等于f1 - f2 A-n,其中n是最接近商的精确算术值的数学整数f1/f2 ,并且如果两个整数都同样接近f1/f2 ,那么n是其中的偶数。 如果余数为零,其符号与第一个参数的符号相同。 特殊情况:
        • 如果任一参数为NaN,或第一个参数为无穷大,或第二个参数为正零或负零,则结果为NaN。
        • 如果第一个参数是有限的,第二个参数是无穷大的,那么结果与第一个参数相同。
        参数
        f1 - 股息。
        f2 - 除数。
        结果
        剩余时间为 f1除以 f2
      • ceil

        public static double ceil​(double a)
        返回最小的(最接近负无穷大) double值,该值大于或等于该参数,并等于某个整数。 特殊情况:
        • 如果参数值已经等于数学整数,则结果与参数相同。
        • 如果参数为NaN或无穷大或正零或负零,则结果与参数相同。
        • 如果参数值小于零但大于-1.0,则结果为负零。
        需要注意的是价值StrictMath.ceil(x)正是价值-StrictMath.floor(-x)
        参数
        a - 一个值。
        结果
        最大(最接近负无穷大)的浮点值大于或等于参数,并且等于一个数学整数。
      • floor

        public static double floor​(double a)
        返回小于或等于参数的最大(最接近正无穷大)的double值,并且等于数学整数。 特殊情况:
        • 如果参数值已经等于数学整数,则结果与参数相同。
        • 如果参数为NaN或无穷大或正零或负零,则结果与参数相同。
        参数
        a - 一个值。
        结果
        小于或等于参数的最大(最接近正无穷大)浮点值,等于数学整数。
      • rint

        public static double rint​(double a)
        返回值与参数最接近的值为double ,等于数学整数。 如果两个double数值是数学整数,则与参数的值相等,则结果为均匀的整数值。 特殊情况:
        • 如果参数值已经等于数学整数,则结果与参数相同。
        • 如果参数为NaN或无穷大或正零或负零,则结果与参数相同。
        参数
        a - 一个值。
        结果
        最接近的浮点值为 a ,等于一个数学整数。
      • atan2

        public static double atan2​(double y,
                                   double x)
        返回从直角坐标(转换角度theta xy )为极坐标(R,θ-)。 该方法通过计算在pipi的范围内计算y/x反正切值来计算相位θ 特殊情况:
        • 如果任一参数为NaN,则结果为NaN。
        • 如果第一个参数为正零,第二个参数为正,或第一个参数为正和有限,第二个参数为正无穷大,则结果为正零。
        • 如果第一个参数为负零,第二个参数为正,或第一个参数为负,有限,第二个参数为正无穷大,则结果为负零。
        • 如果第一个参数为正零,第二个参数为负,或第一个参数为正和有限,第二个参数为负无穷大,则结果为最接近pidouble值。
        • 如果第一个参数为负零,第二个参数为负,或者第一个参数为负,有限,第二个参数为负无穷大,则结果为最接近pidouble值。
        • 如果第一个参数为正,第二个参数为正零或负零,或第一个参数为正无穷大,第二个参数为有限,则结果为最接近pi / 2的double值。
        • 如果第一个参数是负的,第二个参数是正的零或负零,或者第一参数是负无穷大,并且第二个参数是有限的,那么结果是double最接近的值到- PI / 2。
        • 如果两个参数均为无穷大,则结果为最接近pi / 4的double值。
        • 如果第一个参数为正无穷大,第二个参数为负无穷大,则结果为最接近3 * pi / 4的double值。
        • 如果第一个参数为负无穷大,第二个参数为正无穷大,则结果为最接近 - pi / 4的double值。
        • 如果两个参数均为负无穷大,则结果为最接近-3 * pi / 4的double值。
        参数
        y - 纵坐标坐标
        x - 横坐标坐标
        结果
        极坐标中点( rtheta )的 theta分量对应于笛卡尔坐标中的点( xy )。
      • pow

        public static double pow​(double a,
                                 double b)
        将第一个参数的值返回到第二个参数的幂。 特殊情况:
        • 如果第二个参数为正或负零,则结果为1.0。
        • 如果第二个参数为1.0,则结果与第一个参数相同。
        • 如果第二个参数是NaN,那么结果是NaN。
        • 如果第一个参数是NaN,第二个参数是非零,那么结果是NaN。
        • 如果
          • 第一个参数的绝对值大于1,第二个参数为正无穷大,或
          • 第一个参数的绝对值小于1,第二个参数为负无穷大,
          那么结果是正无穷大。
        • 如果
          • 第一个参数的绝对值大于1,第二个参数为负无穷大,或
          • 第一个参数的绝对值小于1,第二个参数为正无穷大,
          那么结果是正零。
        • 如果第一个参数的绝对值等于1,第二个参数为无穷大,则结果为NaN。
        • 如果
          • 第一个参数是正零,第二个参数大于零,或者
          • 第一个参数是正无穷大,第二个参数小于零,
          那么结果是正零。
        • 如果
          • 第一个参数是正零,第二个参数小于零,或者
          • 第一个参数是正无穷大,第二个参数大于零,
          那么结果是正无穷大。
        • 如果
          • 第一个参数是负零,第二个参数大于零,但不是有限的奇整数,或者
          • 第一个参数是负无穷大,第二个参数小于零,但不是有限奇整数,
          那么结果是正零。
        • 如果
          • 第一个参数为负零,第二个参数为正有限奇数整数,或
          • 第一个参数为负无穷大,第二个参数为负有限奇数整数,
          那么结果是负零。
        • 如果
          • 第一个参数为负零,第二个参数小于零,但不是有限奇整数
          • 第一个参数为负无穷大,第二个参数大于零但不是有限奇整数,
          那么结果是正无穷大。
        • 如果
          • 第一个参数为负零,第二个参数为负有限奇数整数,或
          • 第一个参数是负无穷大,第二个参数是正有限奇数整数,
          那么结果是负无穷大。
        • 如果第一个参数是有限的并且小于零
          • 如果第二个参数是有限均匀整数,结果等于将第一个参数的绝对值提高到第二个参数的幂的结果
          • 如果第二个参数是有限的奇整数,则结果等于将第一个参数的绝对值提高到第二个参数的幂的结果的负数
          • 如果第二个参数是有限的,而不是一个整数,则结果是NaN。
        • 如果两个参数都是整数,则结果完全等于将第一个参数提升为第二个参数的幂的数学结果,如果该结果事实上可以精确地表示为double值。

        (在前述的说明中,一个浮点值被认为是一个整数,当且仅当它是有限的,并且该方法的一个固定点ceil或等价地,该方法的一个固定点floor 。的值是一个固定的点的唯一方法,当且仅当将该方法应用于该值的结果等于该值时)。

        参数
        a - 基地。
        b - 指数。
        结果
        a b
      • round

        public static int round​(float a)
        返回参数中最接近的int ,其中int四舍五入为正无穷大。

        特殊情况:

        • 如果参数是NaN,结果为0。
        • 如果参数为负无穷大或小于或等于Integer.MIN_VALUE的值,则结果等于值Integer.MIN_VALUE
        • 如果参数为正无穷大或大于或等于Integer.MAX_VALUE的值,则结果等于值Integer.MAX_VALUE
        参数
        a - 要舍入为整数的浮点值。
        结果
        参数的值四舍五入到最接近的 int值。
        另请参见:
        Integer.MAX_VALUEInteger.MIN_VALUE
      • round

        public static long round​(double a)
        返回参数最接近的long ,其中long四舍五入为正无穷大。

        特殊情况:

        • 如果参数是NaN,结果为0。
        • 如果参数为负无穷大或小于或等于值Long.MIN_VALUE的值,则结果等于值Long.MIN_VALUE
        • 如果参数为正无穷大或大于或等于Long.MAX_VALUE的值,则结果等于Long.MAX_VALUE的值。
        参数
        a - 要舍入为 long的浮点值。
        结果
        参数的值四舍五入到最接近的 long值。
        另请参见:
        Long.MAX_VALUELong.MIN_VALUE
      • random

        public static double random​()
        返回值为double值为正号,大于等于0.0 ,小于1.0 返回的值是从该范围(大约)均匀分布的伪随机选择的。

        首先调用此方法时,它将创建一个新的伪随机数生成器,就像表达式一样

        new java.util.Random()
        此新的伪随机数生成器此后用于对该方法的所有调用,并在其他地方使用。

        该方法正确同步,以允许多个线程正确使用。 然而,如果许多线程需要以很高的速率产生伪随机数,则可以减少每个线程的争用以拥有自己的伪随机数发生器。

        结果
        伪随机 double大于或等于 0.0且小于 1.0
        另请参见:
        Random.nextDouble()
      • addExact

        public static int addExact​(int x,
                                   int y)
        返回其参数的总和,如果结果溢出一个 int ,则抛出异常。
        参数
        x - 第一个值
        y - 第二个值
        结果
        结果
        异常
        ArithmeticException - 如果结果溢出一个int
        从以下版本开始:
        1.8
        另请参见:
        Math.addExact(int,int)
      • addExact

        public static long addExact​(long x,
                                    long y)
        返回其参数的总和,如果结果溢出一个 long ,则抛出异常。
        参数
        x - 第一个值
        y - 第二个值
        结果
        结果
        异常
        ArithmeticException - 如果结果溢出了很长时间
        从以下版本开始:
        1.8
        另请参见:
        Math.addExact(long,long)
      • subtractExact

        public static int subtractExact​(int x,
                                        int y)
        返回参数的差异,如果结果溢出一个 int ,则抛出异常。
        参数
        x - 第一个值
        y - 从第一个值减去的第二个值
        结果
        结果
        异常
        ArithmeticException - 如果结果溢出一个int
        从以下版本开始:
        1.8
        另请参见:
        Math.subtractExact(int,int)
      • subtractExact

        public static long subtractExact​(long x,
                                         long y)
        返回参数的差异,如果结果溢出一个 long ,则抛出异常。
        参数
        x - 第一个值
        y - 从第一个值中减去的第二个值
        结果
        结果
        异常
        ArithmeticException - 如果结果溢出了很长时间
        从以下版本开始:
        1.8
        另请参见:
        Math.subtractExact(long,long)
      • multiplyExact

        public static int multiplyExact​(int x,
                                        int y)
        返回参数的乘积,如果结果溢出一个 int ,则抛出异常。
        参数
        x - 第一个值
        y - 第二个值
        结果
        结果
        异常
        ArithmeticException - 如果结果溢出一个int
        从以下版本开始:
        1.8
        另请参见:
        Math.multiplyExact(int,int)
      • multiplyExact

        public static long multiplyExact​(long x,
                                         int y)
        返回参数的乘积,如果结果溢出一个 long ,则抛出异常。
        参数
        x - 第一个值
        y - 第二个值
        结果
        结果
        异常
        ArithmeticException - 如果结果溢出了很长时间
        从以下版本开始:
        9
        另请参见:
        Math.multiplyExact(long,int)
      • multiplyExact

        public static long multiplyExact​(long x,
                                         long y)
        返回参数的乘积,如果结果溢出一个 long ,则抛出异常。
        参数
        x - 第一个值
        y - 第二个值
        结果
        结果
        异常
        ArithmeticException - 如果结果溢出了很长时间
        从以下版本开始:
        1.8
        另请参见:
        Math.multiplyExact(long,long)
      • toIntExact

        public static int toIntExact​(long value)
        返回值为long参数; 如果值溢出int则抛出异常。
        参数
        value - 长值
        结果
        作为int的参数
        异常
        ArithmeticException - 如果 argument溢出一个int
        从以下版本开始:
        1.8
        另请参见:
        Math.toIntExact(long)
      • multiplyFull

        public static long multiplyFull​(int x,
                                        int y)
        返回参数的确切数学积。
        参数
        x - 第一个值
        y - 第二个值
        结果
        结果
        从以下版本开始:
        9
        另请参见:
        Math.multiplyFull(int,int)
      • multiplyHigh

        public static long multiplyHigh​(long x,
                                        long y)
        作为 long返回的两个64位因子的128位产品中最显着的64位。
        参数
        x - 第一个值
        y - 第二个值
        结果
        结果
        从以下版本开始:
        9
        另请参见:
        Math.multiplyHigh(long,long)
      • floorDiv

        public static int floorDiv​(int x,
                                   int y)
        返回小于或等于代数商的最大(最接近正无穷大) int值。 有一个特殊情况,如果股息为Integer.MIN_VALUE ,除数为-1 ,则发生整数溢出,结果等于Integer.MIN_VALUE

        参见Math.floorDiv的例子和与整数除法/算子的比较。

        参数
        x - 股息
        y - 除数
        结果
        小于或等于代数商的最大(最接近正无穷大) int值。
        异常
        ArithmeticException - 如果除数 y为零
        从以下版本开始:
        1.8
        另请参见:
        Math.floorDiv(int, int)Math.floor(double)
      • floorDiv

        public static long floorDiv​(long x,
                                    int y)
        返回小于或等于代数商的最大(最接近正无穷大) long值。 有一个特殊情况,如果股息为Long.MIN_VALUE ,除数为-1 ,则发生整数溢出,结果等于Long.MIN_VALUE

        参见Math.floorDiv的例子和与整数除法/算子的比较。

        参数
        x - 股息
        y - 除数
        结果
        小于或等于代数商的最大(最接近正无穷大) int值。
        异常
        ArithmeticException - 如果除数 y为零
        从以下版本开始:
        9
        另请参见:
        Math.floorDiv(long, int)Math.floor(double)
      • floorDiv

        public static long floorDiv​(long x,
                                    long y)
        返回小于或等于代数商的最大(最接近正无穷大) long值。 有一个特殊情况,如果股息为Long.MIN_VALUE ,除数为-1 ,则发生整数溢出,结果等于Long.MIN_VALUE

        参见Math.floorDiv的例子,并与整数除法/运算符进行比较。

        参数
        x - 股息
        y - 除数
        结果
        小于或等于代数商的最大(最接近正无穷大) long值。
        异常
        ArithmeticException - 如果除数 y为零
        从以下版本开始:
        1.8
        另请参见:
        Math.floorDiv(long, long)Math.floor(double)
      • floorMod

        public static int floorMod​(int x,
                                   int y)
        返回int参数的底模数。

        地板模数为x - (floorDiv(x, y) * y) ,与除数y具有相同的符号,并在-abs(y) < r < +abs(y)的范围内。

        floorDivfloorMod之间的关系是这样的:

        • floorDiv(x, y) * y + floorMod(x, y) == x

        有关示例和%操作符的比较,请参阅Math.floorMod

        参数
        x - 股息
        y - 除数
        结果
        地板模数 x - (floorDiv(x, y) * y)
        异常
        ArithmeticException - 如果除数 y为零
        从以下版本开始:
        1.8
        另请参见:
        Math.floorMod(int, int)floorDiv(int, int)
      • floorMod

        public static int floorMod​(long x,
                                   int y)
        返回longint参数的底模。

        地板模量为x - (floorDiv(x, y) * y) ,具有相同的符号作为除数y ,并且在范围内-abs(y) < r < +abs(y)

        floorDivfloorMod之间的关系是这样的:

        • floorDiv(x, y) * y + floorMod(x, y) == x

        有关示例和%操作符的比较,请参阅Math.floorMod

        参数
        x - 股息
        y - 除数
        结果
        地板模数 x - (floorDiv(x, y) * y)
        异常
        ArithmeticException - 如果除数 y为零
        从以下版本开始:
        9
        另请参见:
        Math.floorMod(long, int)floorDiv(long, int)
      • floorMod

        public static long floorMod​(long x,
                                    long y)
        返回long参数的底模数。

        地板模量为x - (floorDiv(x, y) * y) ,具有相同的符号作为除数y ,并且在范围内-abs(y) < r < +abs(y)

        floorDivfloorMod之间的关系是这样的:

        • floorDiv(x, y) * y + floorMod(x, y) == x

        有关示例和%操作符的比较,请参阅Math.floorMod

        参数
        x - 股息
        y - 除数
        结果
        地板模数 x - (floorDiv(x, y) * y)
        异常
        ArithmeticException - 如果除数 y为零
        从以下版本开始:
        1.8
        另请参见:
        Math.floorMod(long, long)floorDiv(long, long)
      • abs

        public static int abs​(int a)
        返回值为int绝对值。 如果参数不为负,则返回参数。 如果参数为负,则返回参数的否定。

        注意,如果参数等于Integer.MIN_VALUE的值,则最负值可表示为int ,结果是相同的值,即为负数。

        参数
        a - 绝对值要确定的参数。
        结果
        参数的绝对值。
      • abs

        public static long abs​(long a)
        返回值为long绝对值。 如果参数不为负,则返回参数。 如果参数为负,则返回参数的否定。

        注意,如果参数等于Long.MIN_VALUE的值,则最负数可表示为long ,结果是相同的值,即为负数。

        参数
        a - 绝对值要确定的参数。
        结果
        参数的绝对值。
      • abs

        public static float abs​(float a)
        返回值为float绝对值。 如果参数不为负,则返回参数。 如果参数为负,则返回参数的否定。 特殊情况:
        • 如果参数为正零或负零,结果为正零。
        • 如果论证是无限的,结果是正无穷大。
        • 如果参数是NaN,结果是NaN。
        API Note:
        如上所述,该方法的一个有效实现由下面的表达式给出,其计算具有与参数相同的指数和有效数的 float ,但是具有指示正值的保证零符号位:
        Float.intBitsToFloat(0x7fffffff & Float.floatToRawIntBits(a))
        参数
        a - 绝对值要确定的参数
        结果
        参数的绝对值。
      • abs

        public static double abs​(double a)
        返回double值的绝对值。 如果参数不为负,则返回参数。 如果参数为负,则返回参数的否定。 特殊情况:
        • 如果参数为正零或负零,结果为正零。
        • 如果论证是无限的,结果是正无穷大。
        • 如果参数是NaN,结果是NaN。
        API Note:
        如上所述,该方法的一个有效实现由以下表达式给出,其计算具有与参数相同的指数和有效 double ,但是具有指示正值的保证零符号位:
        Double.longBitsToDouble((Double.doubleToRawLongBits(a)<<1)>>>1)
        参数
        a - 绝对值要确定的参数
        结果
        参数的绝对值。
      • max

        public static int max​(int a,
                              int b)
        返回两个int值中的较大值。 也就是说,结果是更接近Integer.MAX_VALUE的值。 如果参数的值相同,结果是相同的值。
        参数
        a - 一个论据。
        b - 另一个论点。
        结果
        较大的 ab
      • max

        public static long max​(long a,
                               long b)
        返回两个long中的较大值。 也就是说,结果是更接近Long.MAX_VALUE的值。 如果参数的值相同,结果是相同的值。
        参数
        a - 一个论据。
        b - 另一个论点。
        结果
        较大的 ab
      • max

        public static float max​(float a,
                                float b)
        返回两个float值中的较大值。 也就是说,结果是更接近正无穷大的论据。 如果参数的值相同,结果是相同的值。 如果任一值为NaN,则结果为NaN。 与数值比较运算符不同,该方法认为负零严格小于正零。 如果一个参数为正零,另一个为负,结果为正零。
        参数
        a - 一个论据。
        b - 另一个论点。
        结果
        较大的 ab
      • max

        public static double max​(double a,
                                 double b)
        返回两个double中的较大值。 也就是说,结果是更接近正无穷大的论据。 如果参数的值相同,结果是相同的值。 如果任一值为NaN,则结果为NaN。 与数值比较运算符不同,该方法认为负零严格小于正零。 如果一个参数为正零,另一个为负,结果为正零。
        参数
        a - 一个论点。
        b - 另一个论点。
        结果
        较大的 ab
      • min

        public static int min​(int a,
                              int b)
        返回两个int中的较小值。 也就是说,结果是更接近Integer.MIN_VALUE的值。 如果参数的值相同,结果是相同的值。
        参数
        a - 一个论据。
        b - 另一个论点。
        结果
        较小的 ab
      • min

        public static long min​(long a,
                               long b)
        返回两个long值中的较小值。 也就是说,结果是更接近Long.MIN_VALUE的值。 如果参数的值相同,结果是相同的值。
        参数
        a - 一个论点。
        b - 另一个论点。
        结果
        较小的 ab
      • min

        public static float min​(float a,
                                float b)
        返回两个float中的较小值。 也就是说,结果是更接近负无穷大的值。 如果参数的值相同,结果是相同的值。 如果任一值为NaN,则结果为NaN。 与数值比较运算符不同,该方法认为负零严格小于正零。 如果一个参数为正零,另一个为负零,结果为负零。
        参数
        a - 一个论据。
        b - 另一个论点。
        结果
        较小的 ab.
      • min

        public static double min​(double a,
                                 double b)
        返回两个double中的较小值。 也就是说,结果是更接近负无穷大的值。 如果参数的值相同,结果是相同的值。 如果任一值为NaN,则结果为NaN。 与数值比较运算符不同,该方法认为负零严格小于正零。 如果一个参数为正零,另一个为负零,结果为负零。
        参数
        a - 一个参数。
        b - 另一个参数。
        结果
        较小的 ab
      • fma

        public static double fma​(double a,
                                 double b,
                                 double c)
        返回三个参数的融合乘法加法; 也就是说,返回与第三个参数相加的前两个参数的确切乘积,然后舍入一次到最接近的double 舍入是使用round to nearest even rounding mode完成的。 相比之下,如果将a * b + c评估为常规浮点表达式,则涉及两个舍入误差,第一个用于乘法运算,第二个用于加法运算。

        特殊情况:

        • 如果任何参数是NaN,结果是NaN。
        • 如果前两个参数之一是无穷大,另一个为零,则结果为NaN。
        • 如果前两个参数的确切乘积是无穷大的(换句话说,至少有一个参数是无穷大的,另一个不是零,也不是NaN),而第三个参数是相反符号的无穷大,结果是NaN。

        请注意, fusedMac(a, 1.0, c)返回与( a + c )相同的结果。 然而, fusedMac(a, b, +0.0) 并不总是返回相同的结果( a * b ),因为fusedMac(-0.0, +0.0, +0.0)+0.0 ,而( -0.0 * +0.0 )为-0.0 ; fusedMac(a, b, -0.0)相当于( a * b )。

        API Note:
        该方法对应于IEEE 754-2008中定义的fusedMultiplyAdd操作。
        参数
        a - 一个值
        b - 一个值
        c - 一个值
        结果
        a × b + c )计算,好像无限范围和精度,并舍入一次到最接近的 double
        从以下版本开始:
        9
      • fma

        public static float fma​(float a,
                                float b,
                                float c)
        返回三个参数的融合乘法加法; 也就是说,返回与第三个参数相加的前两个参数的确切乘积,然后舍入一次到最接近的float 舍入是使用round to nearest even rounding mode完成的。 相比之下,如果将a * b + c评估为常规浮点表达式,则涉及两个舍入误差,第一个用于乘法运算,第二个用于加法运算。

        特殊情况:

        • 如果任何参数是NaN,结果是NaN。
        • 如果前两个参数之一是无穷大,另一个为零,则结果为NaN。
        • 如果前两个参数的确切乘积是无穷大的(换句话说,至少有一个参数是无穷大的,另一个不是零,也不是NaN),而第三个参数是相反符号的无穷大,结果是NaN。

        请注意, fma(a, 1.0f, c)返回与( a + c )相同的结果。 然而, fma(a, b, +0.0f) 并不总是返回相同的结果( a * b ),因为fma(-0.0f, +0.0f, +0.0f)+0.0f ,而( -0.0f * +0.0f )为-0.0f ; fma(a, b, -0.0f)相当于( a * b )。

        API Note:
        该方法对应于IEEE 754-2008中定义的fusedMultiplyAdd操作。
        参数
        a - 一个值
        b - 一个值
        c - 一个值
        结果
        (A A- B + C)来计算,因为如果具有无限范围和精度,并且一旦四舍五入到最近的 float
        从以下版本开始:
        9
      • ulp

        public static double ulp​(double d)
        返回参数的ulp的大小。 最后一个位置的ulp单位是double值,这个浮点值与double值之间的正距离越大。 请注意,对于非NaN xulp(-x) == ulp(x)

        特殊情况:

        • 如果参数是NaN,那么结果是NaN。
        • 如果参数为正或负无穷大,则结果为正无穷大。
        • 如果参数为正或负为零,则结果为Double.MIN_VALUE
        • 如果参数为± Double.MAX_VALUE ,则结果等于2 971
        参数
        d - 要返回ulp的浮点值
        结果
        参数的ulp的大小
        从以下版本开始:
        1.5
      • ulp

        public static float ulp​(float f)
        返回参数的ulp的大小。 最后一个位置的ulp单位是float值,这个浮点值与float值之间的正距离越大。 请注意,对于非NaN xulp(-x) == ulp(x)

        特殊情况:

        • 如果参数是NaN,那么结果是NaN。
        • 如果参数为正或负无穷大,则结果为正无穷大。
        • 如果参数为正或负零,则结果为Float.MIN_VALUE
        • 如果参数为± Float.MAX_VALUE ,则结果等于2 104
        参数
        f - 要返回ulp的浮点值
        结果
        参数的ulp的大小
        从以下版本开始:
        1.5
      • signum

        public static double signum​(double d)
        返回参数的signum函数; 如果参数为零,则为零,如果参数大于零则为1.0,如果参数小于零,则为-1.0。

        特殊情况:

        • 如果参数是NaN,那么结果是NaN。
        • 如果参数为正零或负零,则结果与参数相同。
        参数
        d - 要返回其符号的浮点值
        结果
        参数的signum函数
        从以下版本开始:
        1.5
      • signum

        public static float signum​(float f)
        返回参数的signum函数; 如果参数为零,则为零,如果参数大于零则为1.0f,如果参数小于零,则为-1.0f。

        特殊情况:

        • 如果参数是NaN,那么结果是NaN。
        • 如果参数为正零或负零,则结果与参数相同。
        参数
        f - 要返回其符号的浮点值
        结果
        参数的signum函数
        从以下版本开始:
        1.5
      • sinh

        public static double sinh​(double x)
        返回一个double的双曲正弦值。 x的双曲正弦被定义为( e x -e -x )/ 2,其中eEuler's number

        特殊情况:

        • 如果参数是NaN,那么结果是NaN。
        • 如果参数是无限的,则结果是与参数具有相同符号的无穷大。
        • 如果参数为零,则结果为与参数相同符号的零。
        参数
        x - 要返回双曲正弦的数字。
        结果
        双曲正弦为 x
        从以下版本开始:
        1.5
      • cosh

        public static double cosh​(double x)
        返回double值的双曲余弦值。 x的双曲余弦被定义为( e x + e -x )/ 2,其中eEuler's number

        特殊情况:

        • 如果参数是NaN,那么结果是NaN。
        • 如果参数是无穷大的,则结果是正无穷大。
        • 如果参数为零,则结果为1.0
        参数
        x - 要返回双曲余弦的数字。
        结果
        双曲余弦 x
        从以下版本开始:
        1.5
      • tanh

        public static double tanh​(double x)
        返回double值的双曲正切值。 x的双曲正切定义为(E X -电子-x)/(E X + E -x),换句话说, 二七○五四五九九六八九○四九四 / 二百七万五千四百五十九亿九千六百八十九万八千三百八十九 请注意,确切的tanh的绝对值始终小于1。

        特殊情况:

        • 如果参数是NaN,那么结果是NaN。
        • 如果参数为零,则结果为与参数相同符号的零。
        • 如果参数为无穷大,则结果为+1.0
        • 如果参数为负无穷大,则结果为-1.0
        参数
        x - 要返回其双曲正切的数字。
        结果
        双曲正切 x
        从以下版本开始:
        1.5
      • hypot

        public static double hypot​(double x,
                                   double y)
        返回sqrt( x 2 + y 2 ),没有中间溢出或下溢。

        特殊情况:

        • 如果任一参数为无穷大,则结果为无穷大。
        • 如果任一参数为NaN,且两个参数都不是无穷大,则结果为NaN。
        参数
        x - 一个值
        y - 一个值
        结果
        sqrt( x 2 + y 2 ),没有中间溢出或下溢
        从以下版本开始:
        1.5
      • expm1

        public static double expm1​(double x)
        返回e x -1。 请注意,对于接近0 的x值的确切数额expm1(x) + 1更接近E X比的真实结果exp(x)

        特殊情况:

        • 如果参数是NaN,结果是NaN。
        • 如果参数为无穷大,则结果为正无穷大。
        • 如果参数为负无穷大,则结果为-1.0。
        • 如果参数为零,则结果为与参数相同符号的零。
        参数
        x - e e计算中的指数 e x -1。
        结果
        e x - 1。
        从以下版本开始:
        1.5
      • log1p

        public static double log1p​(double x)
        返回参数之和1注的自然对数,对于小值x ,结果log1p(x)更接近LN(1 +的真实结果x ),比的浮点评价log(1.0+x)

        特殊情况:

        • 如果参数为NaN或小于-1,则结果为NaN。
        • 如果参数为无穷大,则结果为正无穷大。
        • 如果参数为负,则结果为负无穷大。
        • 如果参数为零,则结果为与参数相同符号的零。
        参数
        x - 一个值
        结果
        值ln( x + 1),自然日志为 x + 1
        从以下版本开始:
        1.5
      • copySign

        public static double copySign​(double magnitude,
                                      double sign)
        使用第二个浮点参数的符号返回第一个浮点参数。 对于这种方法,NaN sign参数总是被视为正面。
        参数
        magnitude - 提供结果大小的参数
        sign - 提供结果符号的参数
        结果
        价值为 magnitude ,标志为 sign
        从以下版本开始:
        1.6
      • copySign

        public static float copySign​(float magnitude,
                                     float sign)
        使用第二个浮点参数的符号返回第一个浮点参数。 对于这种方法,NaN sign参数总是被视为正面。
        参数
        magnitude - 提供结果大小的参数
        sign - 提供结果符号的参数
        结果
        大小为 magnitude ,符号为 sign
        从以下版本开始:
        1.6
      • getExponent

        public static int getExponent​(float f)
        返回在float的表示中使用的无偏指数。 特殊情况:
        参数
        f - 一个 float价值
        结果
        参数的无偏指数
        从以下版本开始:
        1.6
      • getExponent

        public static int getExponent​(double d)
        返回在double的表示中使用的无偏指数。 特殊情况:
        参数
        d - 一个 double价值
        结果
        参数的无偏指数
        从以下版本开始:
        1.6
      • nextAfter

        public static double nextAfter​(double start,
                                       double direction)
        返回与第二个参数方向相邻的第一个参数的浮点数。 如果两个参数都相等,则返回第二个参数。

        特殊情况:

        • 如果任一参数是NaN,则返回NaN。
        • 如果两个参数都是带符号的零, direction被不变地返回(如果参数比较为相等则返回第二个参数的要求)。
        • 如果start为± Double.MIN_VALUEdirection具有使结果应具有较小幅度的值,则返回与start相同符号的零。
        • 如果start是无限的, direction具有这样的结果应该有一个小幅度的值Double.MAX_VALUE用相同的符号start返回。
        • 如果start等于± Double.MAX_VALUE并且direction具有使得结果应该具有较大幅度的值,则返回与start具有相同符号的无穷大。
        参数
        start - 起始浮点值
        direction - 应该返回 start的邻居或 start哪一个的值
        结果
        邻近浮点数 start中的方向 direction
        从以下版本开始:
        1.6
      • nextAfter

        public static float nextAfter​(float start,
                                      double direction)
        返回与第二个参数方向相邻的第一个参数的浮点数。 如果两个参数都相等,则返回等于第二个参数的值。

        特殊情况:

        • 如果任一参数是NaN,则返回NaN。
        • 如果两个参数都是带符号的零,则返回值为direction的值。
        • 如果start是± Float.MIN_VALUE并且direction具有使得结果应该具有较小幅度的值,则返回与start具有相同符号的零。
        • 如果start是无限的, direction具有这样的结果应该有一个小幅度的值Float.MAX_VALUE用相同的符号start返回。
        • 如果start等于± Float.MAX_VALUE并且direction具有使得结果应该具有较大幅度的值,则返回与start相同符号的无穷大。
        参数
        start - 起始浮点值
        direction - 应该返回 start的邻居或 start哪一个的值
        结果
        邻近浮点数 start中的方向 direction
        从以下版本开始:
        1.6
      • nextUp

        public static double nextUp​(double d)
        返回与正无穷大方向相邻的d的浮点值。 这种方法在语义上相当于nextAfter(d, Double.POSITIVE_INFINITY) ; 然而,一个nextUp实现可能会比其等效的nextAfter调用运行得更快。

        特殊情况:

        • 如果参数是NaN,结果是NaN。
        • 如果论证是正无穷大,结果是正无穷大。
        • 如果参数为零,结果为Double.MIN_VALUE
        参数
        d - 起始浮点值
        结果
        相邻浮点值接近正无穷大。
        从以下版本开始:
        1.6
      • nextUp

        public static float nextUp​(float f)
        返回与正无穷大方向相邻的f的浮点值。 这种方法在语义上相当于nextAfter(f, Float.POSITIVE_INFINITY) ; 但是,一个nextUp实现可能比其等效的nextAfter调用运行速度更快。

        特殊情况:

        • 如果参数是NaN,结果是NaN。
        • 如果论证是正无穷大,结果是正无穷大。
        • 如果参数为零,结果为Float.MIN_VALUE
        参数
        f - 起始浮点值
        结果
        相邻浮点值接近正无穷大。
        从以下版本开始:
        1.6
      • nextDown

        public static double nextDown​(double d)
        返回与负无穷大方向相邻的d的浮点值。 这种方法在语义上相当于nextAfter(d, Double.NEGATIVE_INFINITY) ; 然而, nextDown实现可能比其等效的nextAfter调用运行速度更快。

        特殊情况:

        • 如果参数是NaN,结果是NaN。
        • 如果参数为负无穷大,则结果为负无穷大。
        • 如果参数为零,结果为-Double.MIN_VALUE
        参数
        d - 起始浮点值
        结果
        相邻浮点值接近负无穷大。
        从以下版本开始:
        1.8
      • nextDown

        public static float nextDown​(float f)
        返回与负无穷大方向相邻的f的浮点值。 这种方法在语义上相当于nextAfter(f, Float.NEGATIVE_INFINITY) ; 然而,一个nextDown实现可能比其等效的nextAfter调用运行速度更快。

        特殊情况:

        • 如果参数是NaN,结果是NaN。
        • 如果参数为负无穷大,则结果为负无穷大。
        • 如果参数为零,结果为-Float.MIN_VALUE
        参数
        f - 起始浮点值
        结果
        相邻浮点值接近负无穷大。
        从以下版本开始:
        1.8
      • scalb

        public static double scalb​(double d,
                                   int scaleFactor)
        返回d 2 scaleFactor四舍五入,就像一个正确四舍五入的浮点数乘以双重值集合的成员一样。 有关浮点值集的讨论,请参阅Java语言规范。 如果结果的指数在Double.MIN_EXPONENTDouble.MAX_EXPONENT之间,那么答案将被精确计算。 如果结果的指数大于Double.MAX_EXPONENT ,则返回无限大。 请注意,如果结果异常,则精度可能会丢失; 也就是说,当scalb(x, n)是次正常时, scalb(scalb(x, n), -n)可能不等于x 当结果为非NaN时,结果与d具有相同的符号。

        特殊情况:

        • 如果第一个参数是NaN,则返回NaN。
        • 如果第一个参数为无穷大,则返回相同符号的无穷大。
        • 如果第一个参数为零,则返回相同符号的零。
        参数
        d - d两个幂来缩放的数字。
        scaleFactor - 2的功率用于缩放 d
        结果
        d 2 scaleFactor
        从以下版本开始:
        1.6
      • scalb

        public static float scalb​(float f,
                                  int scaleFactor)
        返回f 2 scaleFactor四舍五入,如同由一个正确四舍五入的浮点数乘以浮点值集合的成员一样。 有关浮点值集的讨论,请参阅Java语言规范。 如果结果的指数在Float.MIN_EXPONENTFloat.MAX_EXPONENT之间,那么答案是准确计算的。 如果结果的指数大于Float.MAX_EXPONENT ,则返回无穷大。 请注意,如果结果异常,则精度可能会丢失; 也就是说,当scalb(x, n)是次正常时, scalb(scalb(x, n), -n)可能不等于x 当结果为非NaN时,结果与f具有相同的符号。

        特殊情况:

        • 如果第一个参数是NaN,则返回NaN。
        • 如果第一个参数为无穷大,则返回相同符号的无穷大。
        • 如果第一个参数为零,则返回相同符号的零。
        参数
        f - f两个幂来缩放的数字。
        scaleFactor - 2的功率用于缩放 f
        结果
        f 2 scaleFactor
        从以下版本开始:
        1.6