# Java.lang.Math.scalb() Method

## Description

The java.lang.Math.scalb(double d,int scaleFactor) returns d x 2scaleFactor rounded as if performed by a single correctly rounded floating-point multiply to a member of the double value set. See the Java Language Specification for a discussion of floating-point value sets. If the exponent of the result is between Double.MIN_EXPONENT and Double.MAX_EXPONENT, the answer is calculated exactly. If the exponent of the result would be larger than Double.MAX_EXPONENT, an infinity is returned. Note that if the result is subnormal, precision may be lost; that is, when scalb(x, n) is subnormal, scalb(scalb(x, n), -n) may not equal x. When the result is non-NaN, the result has the same sign as d.

• If the first argument is NaN, NaN is returned.

• If the first argument is infinite, then an infinity of the same sign is returned.

• If the first argument is zero, then a zero of the same sign is returned.

## Declaration

Following is the declaration for java.lang.Math.scalb() method

```public static double scalb(double d, int scaleFactor)
```

## Parameters

• d − number to be scaled by a power of two.

• scaleFactor − power of 2 used to scale d

## Return Value

This method returns d x 2scaleFactor

NA

## Example

The following example shows the usage of lang.Math.scalb() method.

```package com.tutorialspoint;

import java.lang.*;

public class MathDemo {

public static void main(String[] args) {

// get a x to be raised
double x = 50.14;
int y = 4;

// calculate x multiplied by 2 raised in y
System.out.println("Math.scalb(" + x + "," + y + ")=" + Math.scalb(x, y));
}
}
```

Let us compile and run the above program, this will produce the following result −

```Math.scalb(50.14, 4)=802.24
```
java_lang_math.htm