Java中的 StrictMath scalb() 方法
- scalb( double num, int scale )是Java中 StrictMath 类的内置方法,用于计算num * 2^比例并通过单个正确舍入的浮点乘以 double 值参数的成员进行舍入。
- 当结果的指数在Double.MIN_EXPONENT和Double.MAX_EXPONENT之间时,结果计算准确。
- 当结果的指数大于Double.MAX_EXPONENT时返回无穷大。
- 当结果低于正常值时,正确性可能会丢失,这意味着当 scalb( num, scale ) 低于正常值时,scalb(scalb( num, scale ), -scale) 可能不等于num 。
- 当num为 NaN 时,结果为 NaN
- 当num为无限时,结果是num的相同符号的无穷大
- 当num为零时,结果将是相同符号的零。
句法:
public static double scalb(double num, int scale)
参数:该方法接受两个参数:
- num :这是 double 类型,指的是要按 2 的幂进行缩放的数字。
- scalb :这是整数类型,是指用于缩放num的 2 的幂。
返回值:该方法返回num × 2^比例。
例子 :
Input: num = 7 scalb = 2 Output: 28
下面的程序说明了Java.lang.StrictMath.scalb() 方法。
// Java praogram to illustrate the // java.lang.StrictMath.scalb() import java.lang.*; public class Geeks { public static void main(String[] args) { double num1 = 12 , num2 = -7.2, num3 = 0.0; int scalb = 2; double scalb_Value = StrictMath.scalb(num1, scalb); System.out.println("Output = "+scalb_Value); scalb_Value = StrictMath.scalb(num2, scalb); System.out.println("Output = " +scalb_Value); scalb_Value = StrictMath.scalb(num3, scalb); System.out.println("Output = "+scalb_Value); } }
输出:Output = 48.0 Output = -28.8 Output = 0.0
- scalb(float num, int scale)是Java中 StrictMath 类的内置方法,用于计算num * 2^比例并通过单个正确舍入的浮点乘以浮点值参数的成员进行舍入。
- 当结果的指数在Float.MIN_EXPONENT和Float.MAX_EXPONENT之间时,结果计算准确。
- 当结果的指数大于Float.MAX_EXPONENT时返回无穷大。
- 当结果低于正常值时,正确性可能会丢失,这意味着当 scalb( num, scale ) 低于正常值时,scalb(scalb( num, scale ), -scale) 可能不等于num 。
- 当num为 NaN 时,结果为 NaN
- 当num为无限时,结果是num的相同符号的无穷大
- 当num为零时,结果将是相同符号的零。
句法 :
public static float scalb(float num, int scale)
参数:该方法接受两个参数:
- num :这是浮点类型,是指要按 2 的幂缩放的数字。
- scalb :这是整数类型,是指用于缩放num的 2 的幂。
返回值:该方法返回num × 2^比例。
例子 :
Input: num = 2.5f scalb = 4 Output: 40.0
下面的程序说明了Java.lang.StrictMath.scalb() 方法。
// Java praogram to illustrate the // java.lang.StrictMath.scalb() import java.lang.*; public class Geeks { public static void main(String[] args) { float num1 = 8.3f, num2 = -4.2f, num3 = 0.0f; int scalb = 3; float scalb_Value = StrictMath.scalb(num1, scalb); System.out.println("Output = "+scalb_Value); scalb_Value = StrictMath.scalb(num2, scalb); System.out.println("Output = " +scalb_Value); scalb_Value = StrictMath.scalb(num3, scalb); System.out.println("Output = "+scalb_Value); } }
输出:Output = 66.4 Output = -33.6 Output = 0.0