IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

pb de nombre


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 5
    Par défaut pb de nombre
    Avec quelle fonction puis je savoir si un nombre (de type double) est "entier "ou "reel" c'est a dire si il n'a que des 0 apres sa virgule ?
    exemple 3.00 ou 3.01
    Merci

  2. #2
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut Re: pb de nombre
    Citation Envoyé par LIMODIN
    Avec quelle fonction puis je savoir si un nombre (de type double) est "entier "ou "reel" c'est a dire si il n'a que des 0 apres sa virgule ?
    exemple 3.00 ou 3.01
    Je ne pense pas qu'il y ait de méthode fiable. La représentation des nombres à virgule flottante est approximative. un '3' peut très bien être codé '2.999999999', ce qui risque de fausser les résultats.

  3. #3
    Membre émérite
    Avatar de Elijha
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Avril 2003
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Avril 2003
    Messages : 314
    Par défaut
    Salut
    tu peux utiliser la fonction modf, qui te décompose ton double en 2 parties (entier et décimal). Si décimal <> 0 => réel.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #include <stdio.h>
    #include <math.h>
     
    int main(void)
      { double var = 4.00 ;
        double entier = 0.0,
               decimal = 0.0 ;
     
      decimal = modf(var, &entier) ;
      if(decimal) printf("Le nombre %f est \"réel\"\n", var) ;
             else printf("Le nombre %f est \"entier\"\n", var) ;
      return 0 ;
      }
    Autre méthode, tu retiens ton entier dans un long, que tu soustrais au double. Si la différence est égale à 0, c'est un entier.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include <stdio.h>
    #include <math.h>
     
    int main(void)
      { double var = 4.01 ;
        long varentier = (long)var ;
     
      if(var-varentier) printf("Le nombre %f est \"réel\"\n", var) ;
                   else printf("Le nombre %f est \"entier\"\n", var) ;
     
      return 0 ;
      }
    A vérifier, car parfois le calcul des doubles est différent d'un compilo à un autre.

    Voila

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 5
    Par défaut
    Merci
    je vais tester

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Procédure avec un nombre variable d'arguments
    Par charly dans le forum Langage
    Réponses: 15
    Dernier message: 21/06/2002, 11h08
  2. nombre aleatoire
    Par Bob dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 17/06/2002, 18h12
  3. [Comparatifs] Limites nombres tables et quantité de données
    Par benj63 dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 13/06/2002, 21h31
  4. Nombre de fichiers ouverts simultanément
    Par matrixfan dans le forum C++Builder
    Réponses: 3
    Dernier message: 27/05/2002, 17h47
  5. [Kylix] Probleme de nombre flottant!!
    Par yopziggy dans le forum EDI
    Réponses: 5
    Dernier message: 02/05/2002, 10h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo