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 :

Problème de float


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 48
    Par défaut Problème de float
    Bonjour, j'ai commencé le C hier ...

    J'ai cette fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    float convertir(float valeur,int mode)
    {
        float taux = 6.55957;
        float res =0;
        if(mode == 1)
        res = valeur * taux;
        else
        res = valeur / taux;
        printf("Taux = %f",taux);
        return res;
     
    }
    Je passe 10 pour l'argument valeur et 1 pour mode et le resultat vaut 675293858847659330000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000000000000
    000000000000000000000000000000000000000000000000000000000000000.000000

    ... pourquoi ?

    et le reste du code, il doit y avoir une erreur dedas je présume ...


    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    #include <stdio.h>
    #include <stdlib.h>
    #include <ctype.h>
     
     
    float convertir(float valeur,int mode);
    float lireNombre();
    int main()
    {
        int nombre = 0;
        int mode;
        float valeur;
        int ok = 0;
        int resultat = 0;
        printf("Choisissez le mode :\n");
        printf("1.Francs->Euros \n");
        printf("2.Euros->Francs \n");
        while(ok!=1)
        {
            nombre = lireNombre();
            switch(nombre)
            {
                case 1:
                    mode = 1;
                    printf("Entrez un montant : \n");
                    valeur = lireNombre();
                    ok = 1;
                    break;
                case 2:
                 mode = 2;
                    printf("Entrez un montant : \n");
                    valeur = lireNombre();
                    ok = 1;
                    break;
                default:
                    printf("Erreur, entrez 1 ou 2 : \n");
                    break;
            }
        }
        resultat = convertir(valeur,mode);
     
        printf("%f Francs = %f Euros",valeur,resultat);
     
     
        return 0;
    }
     
    float convertir(float valeur,int mode)
    {
        float taux = 6.55957;
        float res =0;
        if(mode == 1)
        res = valeur * taux;
        else
        res = valeur / taux;
        printf("Taux = %f",taux);
        return res;
     
    }
     
    float lireNombre()
    {
        float numeros = 0;
     
        scanf("%f",&numeros); // On lit le premier caractère
     
        return numeros; // On retourne le premier caractère qu'on a lu
    }

  2. #2
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    resultat est défini en int au lieu de float. Le format %f du printf() va donner des affichages bizarres.

    Note : Ce n'est pas très logique d'utiliser lireNombre(), qui lit un flottant, pour entrer la variable du switch.

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 48
    Par défaut
    Tsa ! Les types ...
    Avec le php j'ai tendance à vachement les oublier ^^

    Merci !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/03/2006, 19h29
  2. Problème conversion float vers double
    Par jhenaff dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 27/01/2006, 10h39
  3. Problème avec float.
    Par Paulinho dans le forum Débuter
    Réponses: 1
    Dernier message: 29/11/2005, 10h27
  4. [IB701] problème de float ??
    Par BoeufBrocoli dans le forum InterBase
    Réponses: 5
    Dernier message: 15/09/2003, 14h15
  5. problème de float sur SQL server 2000.
    Par fidji dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 24/07/2003, 14h15

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