Fonctions de la bibliothèque C -modf()

Bibliothèque standard C - <math.h>

Description

Fonctions de la bibliothèque Cdouble modf(double x, double *integer)La valeur de retour est la partie fractionnaire (la partie après le point décimal), et définit integer comme la partie entière.

modf()est la bibliothèque standard C<math.h>une fonction utilisée pour décomposer un nombre à virgule flottante en une partie entière et une partie fractionnaire. Elle est souvent utilisée dans les scénarios où un nombre à virgule flottante doit être séparé en parties entière et fractionnaire.

Déclaration

Voici la déclaration de la fonction modf().

#include <math.h>

double modf(double x, double *iptr);
float modff(float x, float *iptr);
long double modfl(long double x, long double *iptr);

Paramètre

  • x-- valeur à virgule flottante.
  • integer-- un pointeur vers un objet qui stocke la partie entière.

Valeur de retour

La fonction renvoie la partie fractionnaire de x, avec le même signe que x.

Exemple

L'exemple suivant montre l'utilisation de la fonction modf().

Exemple

#include<stdio.h>
#include<math.h>

int main ()
{
   double x, fractpart, intpart;

   x = 8.123456;
   fractpart = modf(x, &intpart);

   printf("Partie entière = %lf\n", intpart);
   printf("Partie fractionnaire = %lf\n", fractpart);
   
   return(0);
}

Compilons et exécutons le programme ci-dessus, ce qui produira le résultat suivant :

整数部分 = 8.000000
小数部分 = 0.123456 

Gestion de la décomposition de plusieurs valeurs

L'exemple suivant montre comment gérer la décomposition de plusieurs nombres à virgule flottante :

Exemple

#include <stdio.h>
#include <math.h>

int main() {
    double values[] = {123.456, -123.456, 0.0, 1.0, -1.0};
    int num_values = sizeof(values) / sizeof(values[0]);

    for (int i = 0; i < num_values; i++) {
        double x = values[i];
        double intpart;
        double fracpart;

        fracpart = modf(x, &intpart);

        printf("Valeur d'origine : %f\n", x);
        printf("Partie entière : %f\n", intpart);
        printf("Partie fractionnaire : %f\n", fracpart);
        printf("\n");
    }

    return 0;
}

Compilons et exécutons le programme ci-dessus, ce qui produira le résultat suivant :

Original value: 123.456000
Integer part: 123.000000
Fractional part: 0.456000

Original value: -123.456000
Integer part: -123.000000
Fractional part: -0.456000

Original value: 0.000000
Integer part: 0.000000
Fractional part: 0.000000

Original value: 1.000000
Integer part: 1.000000
Fractional part: 0.000000

Original value: -1.000000
Integer part: -1.000000
Fractional part: -0.000000

Explication du code

  • Définissez un tableau contenant plusieurs nombres à virgule flottantevalues。
  • UtilisationforParcourez chaque valeur et appelezmodf(x, &intpart)Effectuer la décomposition.
  • Afficher la valeur d'origine, la partie entière et la partie fractionnaire de chaque valeur.

Cas d'utilisation

modf()La fonction a un large éventail d'usages dans de nombreuses applications, y compris, mais sans s'y limiter :

  • Séparer les parties entière et fractionnaire d'un nombre à virgule flottante pour un traitement individuel.
  • Scénarios de calcul où la partie entière et la partie fractionnaire doivent être traitées séparément.
  • Scénarios en calcul scientifique et analyse numérique nécessitant un traitement précis de la partie décimale. Scénarios de calcul scientifique et d'analyse numérique qui nécessitent un traitement précis de la partie fractionnaire.

Notes

  • modf()Lorsque la fonction traite des nombres positifs et négatifs, les signes de la partie entière et de la partie fractionnaire restent cohérents. Par exemple, pour -123.456, la partie entière est -123.0 et la partie fractionnaire est -0.456.

Résumé

modf()La fonction est utilisée pour décomposer un nombre à virgule flottante en une partie entière et une partie fractionnaire, ce qui en fait un outil important pour gérer l'arithmétique à virgule flottante. Grâce à une utilisation rationnellemodf()Il est possible d'obtenir une décomposition précise des nombres à virgule flottante en calcul scientifique, en analyse numérique et dans les applications d'ingénierie, et de garantir un traitement séparé des parties entière et fractionnaire.

Bibliothèque standard C - <math.h>

autres extensions