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 |
---|---|---|
Retourner la valeur absolue de int |
||
Calculer l'arc cosinus |
||
Calculer l'arc sinus |
||
Calculer l'arc tangente |
||
Convertir une chaîne de caractères en valeur à virgule flottante double précision |
||
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é. |
|
Trouver la valeur absolue du nombre complexe |
Non applicable. |
|
Calculer la racine cubique |
Non applicable. |
|
Trouver la valeur plafond de l'entier |
||
Inverser le signe de l'argument à virgule flottante double précision ou à virgule flottante double précision long |
Non applicable. |
|
Obtenir et effacer le mot d'état à virgule flottante |
Non applicable. |
|
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. |
Calculer le cosinus |
||
Calculer la différence entre deux valeurs d'heure spécifiées |
||
Diviser un entier par un autre, en retournant le quotient et le reste |
Non applicable. |
|
Convertir double en chaine de caractères de longueur spécifiée |
||
Calculer la fonction exponentielle |
||
Trouver la valeur absolue |
||
Convertir double en chaîne avec le nombre spécifié de chiffres après la virgule décimale |
||
Déterminer si la valeur à virgule flottante double précision donnée est finie |
||
Trouver le plus grand entier inférieur ou égal à l'argument |
||
Trouver le reste à virgule flottante |
||
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 |
|
Appeler un gestionnaire d'interruptions défini par l'utilisateur pour les exceptions à virgule flottante IEEE |
Non applicable. |
|
Réinitialiser le package mathématique à virgule flottante |
|
|
Calculer la valeur exponentielle |
Non applicable. |
|
Convertir une valeur à virgule flottante en chaîne de caractères |
||
Calculer l'hypoténuse du triangle rectangle |
Non applicable. |
|
Rechercher une valeur non numérique (NaN) dans la valeur à virgule flottante double précision donnée |
||
Retourner la valeur absolue de long |
||
Calculer le produit de l'argument et de 2exp (puissance spécifiée) |
||
Diviser un entier long par un autre, en retournant le quotient et le reste |
Non applicable. |
|
Calculer le logarithme naturel ou en base 10 |
||
Extraire la valeur exponentielle de l'argument à virgule flottante double précision |
Non applicable. |
|
Décaler unsigned long int vers la gauche (_lrotl) ou la droite (_lrotr) |
Non applicable. |
|
Gérer les erreurs mathématiques |
Non applicable. |
|
Retourner la plus grande de deux valeurs |
||
Retourner la plus petite de deux valeurs |
||
Diviser l'argument en un entier et une partie fractionnaire |
Non applicable. |
|
Retourner une valeur NaN silencieuse |
||
Retourner le prochain voisin représentable |
Non applicable. |
|
Calculer la valeur élevée à une puissance |
||
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é |
|
Obtenir un nombre pseudo-aléatoire |
||
Arrondir à l'entier le plus proche au format à virgule flottante |
||
Décaler unsigned int vers la gauche (_rotl) ou la droite (_rotr) |
Non applicable. |
|
Mettre à l'échelle l'argument à la puissance 2 |
Non applicable. |
|
Multiplier par la puissance intégrale de FLT_RADIX |
Non applicable. |
|
Lire les données dans stdin selon le format spécifié et écrire les données à l'emplacement spécifié |
||
Définir une nouvelle valeur de mot de contrôle |
Non applicable. |
|
Calculer le sinus ou le sinus hyperbolique |
||
Trouver la racine carrée |
||
Initialiser des séries pseudo-aléatoires |
||
Obtenir le mot d'état à virgule flottante |
Non applicable. |
|
Convertir une chaîne de caractères en valeur double précision |
||
Calculer la tangente ou la tangente hyperbolique |