scalbn, scalbnf, scalbnl, scalbln, scalblnf, scalblnl
Multiplie un nombre à virgule flottante par une puissance intégrale de 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 );
Paramètres
x
Valeur à virgule flottante.exp
Exposant entier.
Valeur de retour
Les fonctions scalbn retournent la valeur x * FLT_RADIXexp en cas de succès. En cas de dépassement (selon le signe de x), scalbn retourne +/– HUGE_VAL ; errno a la valeur ERANGE.
Pour plus d'informations sur errno et sur les valeurs de retour d'erreur possibles, voir errno, _doserrno, _sys_errlist et _sys_nerr.
Notes
FLT_RADIX est défini dans <float.h> comme base à virgule flottante native ; sur les systèmes binaires, sa valeur est égale à 2 et scalbn est équivalent à ldexp.
C++ autorisant la surcharge, vous pouvez appeler des surcharges de scalbn et scalbln qui acceptent et retournent des types float ou long double. Dans un programme C, scalbn accepte toujours une valeur double et une valeur int, et retourne une valeur double, et scalbln accepte toujours une valeur double et une valeur long, et retourne une valeur double.
Configuration requise
Fonction |
En-tête C |
En-tête C++ |
---|---|---|
scalbn, scalbnf, scalbnl, scalbln, scalblnf, scalblnl |
<math.h> |
<cmath> |
Pour plus d'informations sur la compatibilité, voir Compatibilité.
Exemple
// 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 );
}
Sortie
6.4 times FLT_RADIX to the power of 3 is 51.2