Sdílet prostřednictvím


scalbn, scalbnf, scalbnl, scalbln, , scalblnfscalblnl

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_RADIXx * 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, , scalblnfscalblnl <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, , modffmodfl