Partager via


scalbn, scalbnf, scalbnl, scalbln, scalblnf, scalblnl

Multiplie un nombre à virgule flottante par une puissance intégrale de 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

Paramètres

x
Valeur à virgule flottante.

exp
Exposant entier.

Valeur retournée

Les fonctions scalbn retournent la valeur de x * FLT_RADIXexp en cas de succès. En cas de dépassement (en fonction du signe de x), scalbn retourne +/- HUGE_VAL; la errno valeur est définie ERANGEsur .

Pour plus d’informations sur errno les valeurs de retour d’erreur possibles, consultezerrno , , _doserrno_sys_errlistet _sys_nerr.

Notes

FLT_RADIX est défini dans <float.h> comme radix à virgule flottante native ; sur les systèmes binaires, il a la valeur 2 et scalbn équivaut à ldexp.

Étant donné que C++ autorise la surcharge, vous pouvez appeler scalbn et scalbln surcharges qui prennent et retournent float ou long double types. Dans un programme C, sauf si vous utilisez la <macro tgmath.h> pour appeler cette fonction, scalbn prend toujours une double et un int et retourne un double, et scalbln prend toujours un double et un long et retourne un double.

Si vous utilisez les <macros ou scalbln tgmath.h>scalbn(), le type de l’argument détermine la version de la fonction sélectionnée. Pour plus d’informations, consultez les mathématiques génériques de type.

Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.

Spécifications

Fonction En-tête C En-tête C++
scalbn, scalbnf, scalbnl, scalbln, scalblnf, scalblnl <math.h> <cmath>
scalbn ou scalbln macro <tgmath.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility.

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

Voir aussi

Prise en charge mathématique et à virgule flottante
frexp
ldexp
modf, modff, modfl