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 éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 318
    Par défaut problème de float
    Bonjour tt le monde,

    En fait j'ai un problème de soustraction entre deux float, par exemple j'ai comme résultat de 0.4 -0.4 = 1.19209e-07 au lieu d'avoir 0

    NB: decimal[1]=0.4 et decimal[3]=0.4 et quand je fais
    decimal[1]-decimal[3]=1.19209e-07

    aider moi je comprends pas pkoi ça marche pas.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    float f1=(float)(voix[j]*N)/ voix_exprime ;
             int r1=floor(f1);
             decimal[j]=f1-floor(f1);

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    j'ai un peu de mal à comprendre ton code. Peut être qu'avec le code en entier, je trouverai, parce que là, je ne vois pas l'erreur.
    De mon côté, j'ai fait : 0.4-0.4 (avec float) et j'obtiens bien 0.

    Peut être que quelqu'un de plus expérimenté que moi trouvera la solution à ton problème.

    Bon courage

  3. #3
    Membre Expert
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Par défaut
    Le problème ne me semble pas très compliqué. A priori le tableau ne contient pas les valeurs que tu crois. Postes nous le code complet.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 318
    Par défaut
    Merci pour vos réponse.
    en fait je veux savoir combien d'occurence dans mon tableau decimal

    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
     
    int z=0;
    int compt;
    while(n!=0)
            {
                compt=0;
                for(int j=0;j<p;j++)
                {
                    if ((decimal[j]-decimal[trie[z]])== 0) compt=compt+1;
               }
                //cout<<compt<<endl
                tab[z]=compt;
                z=z+1;
                n=n-1;
     
            }
    mon probleme c pas le code mais le fait que
    decimal[1]-decimal[3]= 1.19207e-07
    parceque dans mon tableau j'ai decimal[1]= 0.4 et decimal[3]= 0.4.

  5. #5
    Membre Expert
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Par défaut
    Et moi je te répète que ce ne sont pas ces valeurs que tu as dans decimal[1] et decimal[3], sinon tu obtiendrais 0.

    Comment obtiens-tu ce résultat de toute façon?

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 318
    Par défaut
    Oui j'ai posté le code qui permet de prendre la partie décimal et la stock dans le tableau decimal le voilà:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    for(int j=0;j<p;j++)
    	{
    		f1=(float)(voix[j]*N)/ voix_exprime ;
    		r1=floor(f1);
    		reel[j]=r1;
    		decimal[j]=f1-floor(f1);		
     
    	}

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par muad'dib Voir le message
    Et moi je te répète que ce ne sont pas ces valeurs que tu as dans decimal[1] et decimal[3], sinon tu obtiendrais 0.

    Comment obtiens-tu ce résultat de toute façon?
    Je suis d'accord avec toi.


    Pour t'aider, fais les étapes une par une de ton programme à l'écrit pour telle et telle valeur. On appelle ça un jeu d'essai.

+ 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