Java Math类scalb()方法及示例

数学课scalb()方法

  • scalb()方法在java.lang包中可用。

  • scalb()方法用于将提高的a * 2返回到在方法中传递的作为参数舍入的小数位幂。在此,a是第一个参数,scale是第二个参数。

  • scalb()方法是静态方法,也可以使用类名进行访问。

  • scalb()方法不会引发任何异常。

语法:

    public static float scalb(float a , int sf)
    public static double scalb(double a , int sf);

参数:

  • a –表示要乘以2的幂的数字。

  • sf(缩放因子)–表示用于缩放a的2的幂。

返回值:

此方法的返回类型为float / double,将返回的a * 2提升为sf的幂。

注意:

  • 如果我们传递“ NaN”,它将返回相同的值(即“ NaN”)。

  • 如果我们传递“ Double.MIN_EXPONENT” /“ Float.MIN_EXPONENT”或“ Double.MAX_EXPONENT” /“ Float.MAX_EXPONENT”,则返回相同的值。

  • 如果我们传递“ Double.MAX_EXPONENT” /“ Float.MAX_EXPONENT”,它将返回无穷大。

  • 如果我们将无穷大作为第一个参数传递,它将返回具有相同符号的相同值。

  • 如果我们将零作为第一个参数传递,它将返回具有相同符号的相同值。

Java程序演示scalb()方法示例

//Java程序演示的例子 
//数学类的scalb(double do,int sf)方法

public class ScalbMethod {
    public static void main(String[] args) {
        //声明变量
        double d1 = -0.0;
        double d2 = -7.0 / 0.0;
        double d3 = 20.0;
        int i = 6;

        //在这里,我们得到(-0.0),因为我们通过 
        //值为(-0.0,6)
        System.out.println("Math.scalb(d1,i): " + Math.scalb(d1, i));

        //在这里,我们将得到(-Infinity)并且我们正在传递 
        //值为(-Infinity,6)
        System.out.println("Math.scalb(d2,i): " + Math.scalb(d2, i));

        //在这里,我们将得到(20.0 * 2升为6.0的幂) 
        //因为正在传递的值为(20.0,6)
        System.out.println("Math.scalb(d3,i): " + Math.scalb(d2, i));
    }
}

输出结果

E:\Programs>javac ScalbMethod.java
E:\Programs>java ScalbMethod
Math.scalb(d1,i): -0.0
Math.scalb(d2,i): -Infinity
Math.scalb(d3,i): -Infinity

范例2:

//Java程序演示的例子 
//数学类的scalb(float fi,int sf)方法

public class ScalbMethod {
    public static void main(String[] args) {
        //声明变量
        float f1 = -0.0f;
        float f2 = -7.0f / 0.0f;
        float f3 = 20.0f;
        int i = 6;

        //在这里,我们得到(-0.0),因为我们通过 
        //值为(-0.0,6)
        System.out.println("Math.scalb(f1,i): " + Math.scalb(f1, i));

        //在这里,我们将得到(-Infinity)并且我们正在传递 
        //值为(-Infinity,6)
        System.out.println("Math.scalb(f2,i): " + Math.scalb(f2, i));

        //在这里,我们将得到(20.0 * 2升为6.0的幂) 
        //因为正在传递的值为(20.0,6)
        System.out.println("Math.scalb(f3,i): " + Math.scalb(f2, i));
    }
}

输出结果

E:\Programs>javac ScalbMethod.java
E:\Programs>java ScalbMethod
Math.scalb(d1,i): -0.0
Math.scalb(d2,i): -Infinity
Math.scalb(d3,i): -Infinity