scalbn, scalbnf, scalbnl, scalbln, scalblnf, scalblnl
Moltiplica un numero a virgola mobile per una potenza integrale di 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 );
Parametri
x
Valore a virgola mobile.exp
Esponente dell'intero.
Valore restituito
Le funzioni scalbn, se hanno esito positivo, restituiscono il valore di x * FLT_RADIXexp. In condizione di overflow, in base al segno di x, scalbn restituisce +/– HUGE_VAL; il valore errno viene impostato su ERANGE.
Per altre informazioni su errno e i possibili valori di errore restituiti, vedere errno, _doserrno, _sys_errlist, and _sys_nerr.
Note
FLT_RADIX viene definito in <float.h> come base a virgola mobile nativa. Nei sistemi binari assume un valore di 2 e scalbn equivale a ldexp.
Dato che C++ consente l'overload, è possibile chiamare degli overload di scalbn e scalbln che accettino e restituiscano tipi float o long double. In un programma C scalbn accetta sempre double e int, restituendo double, mentre scalbln accetta sempre double e long, restituendo double.
Requisiti
Funzione |
Intestazione C |
Intestazione C++ |
---|---|---|
scalbn, scalbnf, scalbnl, scalbln, scalblnf, scalblnl |
<math.h> |
<cmath> |
Per altre informazioni sulla compatibilità, vedere Compatibilità.
Esempio
// 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 );
}
Output
6.4 times FLT_RADIX to the power of 3 is 51.2