Java - StrictMath scalb(double a, int b) 方法



描述

Java StrictMath scalb(double d,int scaleFactor) 方法返回 d x 2scaleFactor,其舍入方式如同由单个正确舍入的浮点乘法运算到双精度值集合的成员执行一样。有关浮点值集合的讨论,请参见 Java 语言规范。如果结果的指数介于 Double.MIN_EXPONENT 和 Double.MAX_EXPONENT 之间,则答案将精确计算。如果结果的指数大于 Double.MAX_EXPONENT,则返回无穷大。请注意,如果结果是次正规数,则可能会丢失精度;也就是说,当 scalb(x, n) 是次正规数时,scalb(scalb(x, n), -n) 可能不等于 x。当结果是非 NaN 时,结果与 d 的符号相同。

  • 如果第一个参数是 NaN,则返回 NaN。

  • 如果第一个参数是无穷大,则返回相同符号的无穷大。

  • 如果第一个参数是零,则返回相同符号的零。

声明

以下是 java.lang.StrictMath.scalb() 方法的声明。

public static double scalb(double d, int scaleFactor)

参数

  • d − 要按 2 的幂缩放的数字。

  • scaleFactor − 用于缩放 d 的 2 的幂

返回值

此方法返回 d x 2scaleFactor

异常

示例:获取正双精度值的 scalb

以下示例演示了对正值使用 StrictMath scalb() 方法。

package com.tutorialspoint;
public class StrictMathDemo {
   public static void main(String[] args) {

      // get a double number
      double x = 2.0;
      int y = 5;
   
      // print x raised by y and then y raised by x
      System.out.println("StrictMath.scalb(" + x + "," + y + ")=" + StrictMath.scalb(x, y));
   }
}

输出

让我们编译并运行上述程序,这将产生以下结果:

StrictMath.scalb(2.0,5)=64.0

示例:获取负双精度值的 scalb

以下示例演示了对负值使用 StrictMath scalb() 方法。

package com.tutorialspoint;
public class StrictMathDemo {
   public static void main(String[] args) {

      // get a double number
      double x = -2.0;
      int y = 5;
   
      // print x raised by y and then y raised by x
      System.out.println("StrictMath.scalb(" + x + "," + y + ")=" + StrictMath.scalb(x, y));
   }
}

输出

让我们编译并运行上述程序,这将产生以下结果:

StrictMath.scalb(-2.0,5)=-64.0

示例:获取负比例因子的 scalb

以下示例演示了对负比例因子使用 StrictMath scalb() 方法。

package com.tutorialspoint;
public class StrictMathDemo {
   public static void main(String[] args) {

      // get a double number
      double x = 2.0;
      int y = -5;
   
      // print x raised by y and then y raised by x
      System.out.println("StrictMath.scalb(" + x + "," + y + ")=" + StrictMath.scalb(x, y));
   }
}

输出

让我们编译并运行上述程序,这将产生以下结果:

StrictMath.scalb(2.0,-5)=0.0625
java_lang_strictmath.htm
广告