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