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 :

Conversion float vers entier


Sujet :

C

  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 116
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 116
    Points : 1 111
    Points
    1 111
    Par défaut Conversion float vers entier
    Bonjour. Je voudrai convertir un flottant en entier.

    Mon but est de calculer une taille de tableau à l'aide de trois paramètres : un x_min, un x_max et un pas. Ce sont tous des doubles.

    La fonction que je veux creer est donc quelque chose de la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    #include <stdio.h>
    #include <stdlib.h>
     
    double calc_taille(double x_min, double x_max, double pas)
    {
            double longueur_intervalle;
            double taille_intermediaire;
            unsigned long taille;
     
            longueur_intervalle = x_max-x_min;
            taille_intermediaire = longueur_intervalle / pas;
     
            /*
            conversion de "taille_intermediaire" en entier long non signe
            stockage dans "taille"
            */
     
            return taille;
    }
     
    /* avec un main pour le test */
     
    int main(void)
    {
            double x_min,x_max,pas;
            unsigned long taille;
     
            x_min = 0;
            x_max = 1;
            pas = 0.0001;
     
            taille = calc_taille(x_min,x_max,pas);
     
            printf("la taille calculee est ici %ud\n",taille);
            getchar();
     
            return 0;
    }
    Ma difficulté est dans la conversion flottant vers entier. Pouvez vous me donner une methode fiable pour arriver a faire cette conversion de facon sure ?

    En réalité, j'aimerai arrondir a l'entier inferieur pour obtenir ce unsigned long. Merci beaucoup de votre aide.

  2. #2
    Expert éminent sénior
    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
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par kromartien Voir le message
    Ma difficulté est dans la conversion flottant vers entier. Pouvez vous me donner une methode fiable pour arriver a faire cette conversion de facon sure ?

    En réalité, j'aimerai arrondir a l'entier inferieur pour obtenir ce unsigned long.
    C'est dans la ...

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 116
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 116
    Points : 1 111
    Points
    1 111
    Par défaut
    ok, voilà ce que j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
     
    double calc_taille(double x_min, double x_max, double pas)
    {
            double longueur_intervalle;
            double taille_intermediaire;
            unsigned long taille;
     
            longueur_intervalle = x_max-x_min;
            taille_intermediaire = floor(longueur_intervalle / pas);
     
            taille = (unsigned long)taille_intermediaire;
     
     
            return taille;
    }
     
    /* avec un main pour le test */
     
    int main(void)
    {
            double x_min,x_max,pas;
            unsigned long taille;
     
            x_min = 0;
            x_max = 1;
            pas = 0.0001;
     
            taille = calc_taille(x_min,x_max,pas);
     
            printf("la taille calculee est ici %u\n",taille);
            getchar();
     
            return 0;
    }
    Est-ce que c'est correct ? (hormis le fait que j'ai omis le test sur le signe de taille_intermediaire)

    Si oui, je vous prie de m'excuser et je place ce sujet en délestage.

Discussions similaires

  1. conversion string vers entier
    Par k_boy dans le forum VC++ .NET
    Réponses: 4
    Dernier message: 11/04/2007, 13h33
  2. [C#] Conversion chaîne vers entier signé 8 bits
    Par SesechXP dans le forum Windows Forms
    Réponses: 2
    Dernier message: 25/09/2006, 14h29
  3. conversion chaîne vers entier
    Par pepper18 dans le forum C++
    Réponses: 2
    Dernier message: 31/03/2006, 16h36
  4. Problème conversion float vers double
    Par jhenaff dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 27/01/2006, 10h39
  5. Conversion float vers int
    Par vargasvan dans le forum C
    Réponses: 2
    Dernier message: 05/10/2005, 17h29

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