Partager via


Prise en charge de la virgule flottante

De nombreuses fonctions de la bibliothèque Runtime de Microsoft requièrent la prise en charge de la virgule flottante par un coprocesseur mathématique ou par des bibliothèques de virgules flottantes qui accompagnent le compilateur. Les fonctions prenant en charge les virgules flottantes sont chargées uniquement si nécessaire.

Quand vous utilisez un spécificateur de type virgule flottante dans la chaîne de format d'un appel à une fonction dans la famille printf ou scanf, vous devez spécifier une valeur à virgule flottante ou un pointeur vers une valeur à virgule flottante dans la liste d'arguments pour indiquer au compilateur que la prise en charge de la virgule flottante est requise.

Pour obtenir un exemple de code qui montre comment gérer les exceptions de virgule flottante, voir _fpieee_flt.

La précision virgule flottante des valeurs intermédiaires est contrôlée par les fonctions _control87, _controlfp, __control87_2. Par défaut, le contrôle de précision dans _controlfp a la valeur 53 bits (_PC_53). Une liaison à l'aide de FP10.OBJ remplace le contrôle de précision par défaut par 64 bits (_PC_64). Sur la ligne de commande de l'éditeur de liens, FP10.OBJ doit apparaître avant LIBC.LIB, LIBCMT.LIB ou MSVCRT.LIB.

Fonctions à virgule flottante

Routine

Utilisation

Équivalent .NET Framework

abs

Retourner la valeur absolue de int

System::Math::Abs

acos, acosf

Calculer l'arc cosinus

System::Math::Acos

asin, asinf

Calculer l'arc sinus

System::Math::Asin

atan, atanf, atan2, atan2f

Calculer l'arc tangente

System::Math::Atan, System::Math::Atan2

atof, _atof_l, _wtof, _wtof_l

Convertir une chaîne de caractères en valeur à virgule flottante double précision

System::Convert::ToSingle, System::Convert::ToDouble

Fonctions de Bessel

Calculer les fonctions de Bessel _j0, _j1, _jn, _y0, _y1, _yn

Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, voir Exemples d'appel de code non managé.

_cabs

Trouver la valeur absolue du nombre complexe

Non applicable.

cbrt

Calculer la racine cubique

Non applicable.

ceil, ceilf

Trouver la valeur plafond de l'entier

System::Math::Ceiling

_chgsign, _chgsignf, _chgsignl

Inverser le signe de l'argument à virgule flottante double précision ou à virgule flottante double précision long

Non applicable.

_clear87, _clearfp

Obtenir et effacer le mot d'état à virgule flottante

Non applicable.

_control87, _controlfp, __control87_2, _controlfp_s

Obtenir l'ancien mot de contrôle à virgule flottante et définir la nouvelle valeur du mot de contrôle

Non applicable.

copysign, copysignf, copysignl, _copysign, _copysignf, _copysignl

Retourner une valeur avec le signe d'une autre

Non applicable.

cos, cosf, cosh, coshf

Calculer le cosinus

System::Math::Cos, System::Math::Cosh

difftime

Calculer la différence entre deux valeurs d'heure spécifiées

System::DateTime::Subtract

div

Diviser un entier par un autre, en retournant le quotient et le reste

Non applicable.

_ecvt, _ecvt_s

Convertir double en chaine de caractères de longueur spécifiée

System::Convert::ToString

exp, expf

Calculer la fonction exponentielle

System::Math::Exp

fabs, fabsf

Trouver la valeur absolue

System::Math::Abs

_fcvt, _fcvt_s

Convertir double en chaîne avec le nombre spécifié de chiffres après la virgule décimale

System::Convert::ToString

_finite

Déterminer si la valeur à virgule flottante double précision donnée est finie

System::Double::IsInfinity

floor, floorf

Trouver le plus grand entier inférieur ou égal à l'argument

System::Math::Floor

fmod, fmodf

Trouver le reste à virgule flottante

System::Math::IEEERemainder

_fpclass

Retourner le mot d'état contenant des informations sur la classe à virgule flottante

System::Double::IsInfinity, System::Double::IsNegativeInfinity, System::Double::IsPositiveInfinity, System::Double::IsNan

_fpieee_flt

Appeler un gestionnaire d'interruptions défini par l'utilisateur pour les exceptions à virgule flottante IEEE

Non applicable.

_fpreset

Réinitialiser le package mathématique à virgule flottante

 

frexp

Calculer la valeur exponentielle

Non applicable.

_gcvt, _gcvt_s

Convertir une valeur à virgule flottante en chaîne de caractères

System::Convert::ToString

hypot, hypotf, hypotl, _hypot, _hypotf, _hypotl

Calculer l'hypoténuse du triangle rectangle

Non applicable.

_isnan

Rechercher une valeur non numérique (NaN) dans la valeur à virgule flottante double précision donnée

System::Double::IsNan

labs

Retourner la valeur absolue de long

System::Math::Abs

ldexp

Calculer le produit de l'argument et de 2exp (puissance spécifiée)

System::Math::Pow

ldiv

Diviser un entier long par un autre, en retournant le quotient et le reste

Non applicable.

log, logf, log10, log10f

Calculer le logarithme naturel ou en base 10

System::Math::Log, System::Math::Log10

_logb

Extraire la valeur exponentielle de l'argument à virgule flottante double précision

Non applicable.

_lrotl, _lrotr

Décaler unsigned long int vers la gauche (_lrotl) ou la droite (_lrotr)

Non applicable.

_matherr

Gérer les erreurs mathématiques

Non applicable.

__max

Retourner la plus grande de deux valeurs

System::Math::Max

__min

Retourner la plus petite de deux valeurs

System::Math::Min

modf, modff

Diviser l'argument en un entier et une partie fractionnaire

Non applicable.

nan, nanf, nanl

Retourner une valeur NaN silencieuse

System::Double::NaN

_nextafter

Retourner le prochain voisin représentable

Non applicable.

pow, powf

Calculer la valeur élevée à une puissance

System::Math::Pow

printf, _printf_l, wprintf, _wprintf_l, printf_s, _printf_s_l, wprintf_s, _wprintf_s_l

Écrire les données dans stdout selon le format spécifié

System::Console::Write, System::Console::WriteLine

rand, rand_s

Obtenir un nombre pseudo-aléatoire

System::Random Class

rint, rintf, rintl

Arrondir à l'entier le plus proche au format à virgule flottante

System::Math::Round

_rotl, _rotr

Décaler unsigned int vers la gauche (_rotl) ou la droite (_rotr)

Non applicable.

_scalb

Mettre à l'échelle l'argument à la puissance 2

Non applicable.

scalbn, scalbnf, scalbnl, scalbln, scalblnf, scalblnl

Multiplier par la puissance intégrale de FLT_RADIX

Non applicable.

scanf, wscanf, scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l

Lire les données dans stdin selon le format spécifié et écrire les données à l'emplacement spécifié

System::Console::Read, System::Console::ReadLine

_set_controlfp

Définir une nouvelle valeur de mot de contrôle

Non applicable.

sin, sinf, sinh, sinhf

Calculer le sinus ou le sinus hyperbolique

System::Math::Sin, System::Math::Sinh

sqrt

Trouver la racine carrée

System::Math::Sqrt

srand

Initialiser des séries pseudo-aléatoires

System::Random Class

_status87, _statusfp, _statusfp2

Obtenir le mot d'état à virgule flottante

Non applicable.

strtod, _strtod_l, wcstod, _wcstod_l

Convertir une chaîne de caractères en valeur double précision

System::Convert::ToDouble

tan, tanf, tanh, tanhf

Calculer la tangente ou la tangente hyperbolique

System::Math::Tan, System::Math::Tanh

Voir aussi

Référence

Routines runtime par catégorie