scalbn
, scalbnf
, scalbnl
, scalbln
, , scalblnf
scalblnl
Vynásobí číslo s plovoucí desetinnou čárkou integrální mocninou FLT_RADIX
.
Syntaxe
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
);
#define scalbn(X, INT) // Requires C11 or higher
double scalbln(
double x,
long exp
);
float scalblnf(
float x,
long exp
);
long double scalblnl(
long double x,
long exp
);
#define scalbln(X, LONG) // Requires C11 or higher
float scalbln(
float x,
long exp
); // C++ only
long double scalbln(
long double x,
long exp
); // C++ only
Parametry
x
Hodnota s plovoucí desetinou čárkou
exp
Celočíselná exponent.
Vrácená hodnota
Funkce scalbn
vrátí hodnotuFLT_RADIX
x
* exp při úspěchu. Při přetečení (v závislosti na znaménku x
), scalbn
vrátí +/- HUGE_VAL
; errno
hodnota je nastavena na ERANGE
.
Další informace o errno
návratových hodnotách a možných chybách naleznete v tématuerrno
, _doserrno
, _sys_errlist
, a _sys_nerr
.
Poznámky
FLT_RADIX
je definován v <float.h> jako nativní radix s plovoucí desetinou čárkou; v binárních systémech má hodnotu 2 a scalbn
je ekvivalentní ldexp
.
Vzhledem k tomu, že jazyk C++ umožňuje přetížení, můžete volat scalbn
a scalbln
přetížit, které přebírají a vracejí nebo long double
typyfloat
. Pokud v programu jazyka C nepoužíváte <makro tgmath.h> k volání této funkce, scalbn
vždy vezme double
a vrátí int
a vrátí double
, a scalbln
vždy vezme double
a a a long
vrátí double
.
Pokud použijete <tgmath.h>scalbn()
nebo scalbln
makra, typ argumentu určuje, která verze funkce je vybrána. Podrobnosti najdete v tématu Matematika pro obecné typy.
Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.
Požadavky
Function | Záhlaví jazyka C | Hlavička jazyka C++ |
---|---|---|
scalbn , scalbnf , scalbnl , scalbln , , scalblnf scalblnl |
<math.h> | <cmath> |
scalbn nebo scalbln makro |
<tgmath.h> |
Další informace o kompatibilitě najdete v tématu Kompatibilita.
Příklad
// 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 );
}
Výstup
6.4 times FLT_RADIX to the power of 3 is 51.2
Viz také
Podpora pro matematiku a plovoucí desetinou čárku
frexp
ldexp
modf
, , modff
modfl