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
    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
    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
    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
    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