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_RADIX
exp 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 ERANGE
sur .
Pour plus d’informations sur errno
les valeurs de retour d’erreur possibles, consultezerrno
, , _doserrno
_sys_errlist
et _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
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour