Section courante

A propos

Section administrative du site

MODF

Modulo à virgule
Langage C math.h

Syntaxe

double modf(double x,double *entier);

Paramètres

Nom Description
x Ce paramètre permet d'indiquer l'expression contenant le nombre à traiter
entier Ce paramètre permet d'indiquer la variable recevant la partie entière

Description

Cette fonction transforme un nombre réel en partie entière et en décimal (fraction).

Algorithme

MODULE MODF(x, iptr)
   * Vérifier si x est NaN ou infini
   SI is_nan(x) ou is_infinite(x) ALORS
      * La partie entière est égale à x
      iptr ← x
      * Pas de partie fractionnaire
      RETOURNE 0
   FIN SI

   * Calculer la partie entière de x
   SI x ≥ 0 ALORS
      entier ← floor(abs(x))
   SINON
      entier ← ceil(abs(x)) x -1
   SIN SI

   * Entreposer la partie entière dans iptr
   ↑iptr ← entier

   * Calculer et retourner la partie fractionnaire
   RETOURNE x - entier

Remarques

Exemple

Voici quelques exemples typiques de l'utilisation de cette fonction :

Essayer maintenant !
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4.  
  5. int main()
  6. {
  7.     double temp;
  8.     temp = 9;
  9.     printf("modf(-81,9) = %.4f,%.4f\n",temp,modf(-81,&temp));
  10.     temp = 3;
  11.     printf("modf(15,3) = %.4f,%.4f\n",temp,modf(15,&temp));
  12.     temp = 3;
  13.     printf("modf(16,3) = %.4f,%.4f\n",temp,modf(16,&temp));
  14.     temp = 3;
  15.     printf("modf(16.9,3) = %.4f,%.4f\n",temp,modf(16.9,&temp));
  16.     temp = 3;
  17.     printf("modf(16.8,3) = %.4f,%.4f\n",temp,modf(16.8,&temp));
  18.     temp = 3;
  19.     printf("modf(16.7,3) = %.4f,%.4f\n",temp,modf(16.7,&temp));
  20.     temp = 3;
  21.     printf("modf(16.6,3) = %.4f,%.4f\n",temp,modf(16.6,&temp));
  22.     temp = 3;
  23.     printf("modf(16.5,3) = %.4f,%.4f\n",temp,modf(16.5,&temp));
  24.     temp = 3;
  25.     printf("modf(16.4,3) = %.4f,%.4f\n",temp,modf(16.4,&temp));
  26.     temp = 3;
  27.     printf("modf(16.3,3) = %.4f,%.4f\n",temp,modf(16.3,&temp));
  28.     temp = 3;
  29.     printf("modf(16.2,3) = %.4f,%.4f\n",temp,modf(16.2,&temp));
  30.     temp = 3;
  31.     printf("modf(16.1,3) = %.4f,%.4f\n",temp,modf(16.1,&temp));
  32.     temp = 3;
  33.     printf("modf(17,3) = %.4f,%.4f\n",temp,modf(17,&temp));
  34.     temp = 3;
  35.     printf("modf(18,3) = %.4f,%.4f\n",temp,modf(18,&temp));
  36.     temp = 3;
  37.     printf("modf(19,3) = %.4f,%.4f\n",temp,modf(19,&temp));
  38.     temp = 1;
  39.     printf("modf(0,1) = %.4f,%.4f\n",temp,modf(0,&temp));
  40.     return 0;
  41. }

on obtiendra le résultat suivant :

modf(-81,9) = -81.0000,-0.0000
modf(15,3) = 15.0000,0.0000
modf(16,3) = 16.0000,0.0000
modf(16.9,3) = 16.0000,0.9000
modf(16.8,3) = 16.0000,0.8000
modf(16.7,3) = 16.0000,0.7000
modf(16.6,3) = 16.0000,0.6000
modf(16.5,3) = 16.0000,0.5000
modf(16.4,3) = 16.0000,0.4000
modf(16.3,3) = 16.0000,0.3000
modf(16.2,3) = 16.0000,0.2000
modf(16.1,3) = 16.0000,0.1000
modf(17,3) = 17.0000,0.0000
modf(18,3) = 18.0000,0.0000
modf(19,3) = 19.0000,0.0000
modf(0,1) = 0.0000,0.0000

Voir également

Langage de programmation - C - Référence de procédures et fonctions - fmod
Langage de programmation - C - Référence de procédures et fonctions - ldexp
Langage de programmation - C++ - Référence de procédures et fonctions - modf

Références

Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 733.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 180.

Dernière mise à jour : Mardi, le 28 juillet 2015