In simple terms, the scalbln() function returns the product of x and FLT_RADIX
raised to the power n.
FLT_RADIX
is the value of the radix (integer base) of the exponent representation.
The function is defined in <cmath> header file. Also, you need to use <cfloat> header file to use FLT_RADIX
.
scalbln(x, n) = x * FLT_RADIXn
scalbln() prototype [As of C++ 11 standard]
double scalbln (double x, long int n); float scalbln (float x, long int n); long double scalbln (long double x, long int n); double scalbln (T x, long int n); // Here, T is an integral type
It is identical to scalbn() function except that it takes long int
as second parameter.
scalbln() Parameters
The scalbln() takes two arguments:
- x - The value representing the significand.
- n - The value of exponent of
FLT_RADIX
.
scalbln() Return Value
The scalbln() function returns x * FLT_RADIXn
.
If the magnitude of the result is too large to be represented by a value of the return type, the function returns HUGE_VAL
with the proper sign.
Example: How scalbln() works?
#include <iostream>
#include <cmath>
#include <cfloat>
using namespace std;
int main ()
{
long int n = 133;
double x = 3.056, result;
result = scalbln (x, n);
cout << x << " * " << FLT_RADIX << "^" << n << " = " << result << endl;
return 0;
}
When you run the program, the output will be:
3.056 * 2^133 = 3.32769e+40