In simple terms, the scalbn() 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
.
scalbn(x, n) = x * FLT_RADIXn
scalbn() prototype [As of C++ 11 standard]
double scalbn (double x, int n); float scalbn (float x, int n); long double scalbn (long double x, int n); double scalbn (T x, int n); // Here, T is an integral type
It is identical to scalbln() function except that it takes int
as second parameter.
scalbn() Parameters
The scalbn() takes two arguments:
- x - The value representing the significand.
- n - The value of exponent of
FLT_RADIX
.
scalbn() Return Value
The scalbn() 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 scalbn() works?
#include <iostream>
#include <cmath>
#include <cfloat>
using namespace std;
int main ()
{
int n = 13;
double x = 3.056, result;
result = scalbn (x, n);
cout << x << " * " << FLT_RADIX << "^" << n << " = " << result << endl;
return 0;
}
When you run the program, the output will be:
3.056 * 2^13 = 25034.8