scalbn, scalbnf, scalbnl, scalbln, scalblnf, scalblnl
Умножает число с плавающей запятой на целую степень числа FLT_RADIX.
double scalbn( double x, int exp ); float scalbn( float x, int exp ); // C++ only long double scalbn( long double x, int exp ); // C++ only float scalbnf( float x, int exp ); long double scalbnl( long double x, int exp ); double scalbln( double x, long exp ); float scalbln( float x, long exp ); // C++ only long double scalbln( long double x, long exp ); // C++ only float scalblnf( float x, long exp ); long double scalblnl( long double x, long exp );
Параметры
x
Значение с плавающей запятой.exp
Целый показатель степени.
Возвращаемое значение
Функции scalbn возвращают значение x * FLT_RADIXexp в случае успешного выполнения. При переполнении (в зависимости от знака числа x) функция scalbn возвращает +/- HUGE_VAL; для errno задается значение ERANGE.
Дополнительные сведения о макросе errno и возможных возвращаемых значениях ошибок см. в разделе errno, _doserrno, _sys_errlist, and _sys_nerr.
Заметки
FLT_RADIX определяется в <float.h> как собственное основание числа с плавающей запятой; в двоичных системах имеет значение 2, а функция scalbn эквивалентна ldexp.
Поскольку C++ допускает перегрузку, можно вызывать перегрузки scalbn и scalbln, которые принимают и возвращают типы float или long double. В программе на языке C функция scalbn всегда принимает значение double и int и возвращает значение double, а функция scalbln всегда принимает значение double и long и возвращает значение double.
Требования
Функция |
Заголовок C |
Заголовок C++ |
---|---|---|
scalbn, scalbnf, scalbnl, scalbln, scalblnf, scalblnl |
<math.h> |
<cmath> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Пример
// crt_scalbn.c
// Compile using: cl /W4 crt_scalbn.c
#include <math.h>
#include <stdio.h>
int main( void )
{
double x = 6.4, y;
int p = 3;
y = scalbn( x, p );
printf( "%2.1f times FLT_RADIX to the power of %d is %2.1f\n", x, p, y );
}
Вывод
6.4 times FLT_RADIX to the power of 3 is 51.2