scalb()方法语法:
public static double scalb(double do , int sf); public static float scalb(float fl , int sf);
scalb(double do,int sf)方法用于将do * 2提升为sf的幂,该整数作为方法中传递的参数进行舍入。
scalb(double do,int sf) –
如果指数位于Double.MIN_EXPONENT和Double.MAX_EXPONENT之间,则在这种情况下,将精确计算结果。
如果指数答案大于Double.MAX_EXPONENT,则返回无穷大。
scalb(float fl,int sf)方法用于返回fl * 2,该值被提升为sf的幂,该整数作为方法中传递的参数进行舍入。
scalb(float fl,int sf) –
如果指数介于Float.MIN_EXPONENT和Float.MAX_EXPONENT之间,那么在这种情况下,结果将被精确计算。
如果指数答案大于Float.MAX_EXPONENT,则返回无穷大。
这些方法不会引发异常。
这些是静态方法,可以使用类名进行访问,如果尝试使用类对象访问这些方法,则不会出现任何错误。
参数:
在第一种情况下,scalb(double do,int sf) -
double do-此参数表示要以2的幂进行缩放的双精度数。
int sf-此参数表示整数类型2的幂次幂,用于缩放do。
在第二种情况下,scalb(float fl,int sf) -
float fl-此参数表示以2的幂进行缩放的float类型号。
int sf-此参数表示2的整数次方,用于缩放fl。
返回值:
在第一种情况下,此方法的返回类型为double,它会将do * 2提升为sf的幂。
在第二种情况下,此方法的返回类型为float,它将返回提升为sf的fl * 2。
示例
//Java程序演示示例
//StrictMath类的scalb()方法的说明
public class Scalb {
public static void main(String[] args) {
//变量声明
float f1 = -0.0f;
float f2 = -7.0f / 0.0f;
float f3 = 20.0f;
double d1 = -0.0;
double d2 = -7.0 / 0.0;
double d3 = 20.0;
int i = 6;
System.out.println("scalb(double do, int i): ");
//在这里,我们得到(-0.0),因为我们传递
//参数值为(-0.0f,6)
System.out.println("StrictMath.scalb( f1,i): " + StrictMath.scalb(f1, i));
//在这里,我们将获得(-Infinity)并传递参数
//其值为(-Infinity,6)
System.out.println("StrictMath.scalb( f2,i): " + StrictMath.scalb(f2, i));
//在这里,我们将得到(20.0f * 2升为6的幂),然后
//我们正在传递参数,其值为(20.0f,6)
System.out.println("StrictMath.scalb( f3,i): " + StrictMath.scalb(f3, i));
System.out.println();
System.out.println("scalb(double do, int i): ");
//在这里,我们得到(-0.0),因为我们传递
//参数的值为(-0.0,6)
System.out.println("StrictMath.scalb( d1,i): " + StrictMath.scalb(d1, i));
//在这里,我们将获得(-Infinity)并传递参数
//其值为(-Infinity,6)
System.out.println("StrictMath.scalb( d2,i): " + StrictMath.scalb(d2, i));
//在这里,我们将得到(20.0 * 2升为6.0的幂),然后
//我们正在传递参数,其值为(20.0,6)
System.out.println("StrictMath.scalb( d3,i): " + StrictMath.scalb(d3, i));
}
}输出结果
scalb(double do, int i): StrictMath.scalb( f1,i): -0.0 StrictMath.scalb( f2,i): -Infinity StrictMath.scalb( f3,i): 1280.0 scalb(double do, int i): StrictMath.scalb( d1,i): -0.0 StrictMath.scalb( d2,i): -Infinity StrictMath.scalb( d3,i): 1280.0