Aller au contenu


Photo
- - - - -

pb avec les float sous builder c++


  • Veuillez vous connecter pour répondre
6 réponses à ce sujet

#1 Sony

Sony

    Member

  • Membres
  • 37 messages

Posté 09 avril 2002 - 03:49

pour mieu expliquer mon pb g mi un exemple ci dessous ou les deux variable sont déclarées en float

aux = 2;
valeur = aux/10;

valeur devrait etre égale a 0.2
mais au lieu de ca valeur est égale 0.2000000987
ya til une solution pour éviter cela ???
  • 0

PUBLICITÉ

    Annonces Google

#2 automne

automne

    Full Patch Member

  • Membres
  • 1 901 messages

Posté 09 avril 2002 - 07:52

En effet, c'est ... spécial !
Essaye ca :
aux = 2;
valeur = aux/10.0;

ou ca :
aux = 2;
valeur = aux/(float)10;

Sinon essaye les double ...

Automne
  • 0

#3 Sony

Sony

    Member

  • Membres
  • 37 messages

Posté 09 avril 2002 - 09:12

g essayé tes soluces et ya kan déclarant en double ke ca marche
mais c pas grave ca me satisfait :P
merci merci automne
  • 0

#4 Sony

Sony

    Member

  • Membres
  • 37 messages

Posté 09 avril 2002 - 09:15

mais si ya kelk1 ki connait la soluce (pour les float) ca me satisfera encore plus
et faut dire ke c vraiment pas logique
  • 0

#5 automne

automne

    Full Patch Member

  • Membres
  • 1 901 messages

Posté 09 avril 2002 - 09:25

ben en fait c'est un probleme de précision je pense.
Le probleme disparait donc quand tu passes en double.

De toute facon, il vaut mieux bosser en double vu que toutes la lib mathematiques utilisent les doubles. A mon avis, y a une raison.

Je ne connais pas bien ton compilo mais regarde s'il n'y a pas des options genre : initialiser les variables à 0 ou des modifications sur les floats.

En tout cas, ca sent le bug de compilo là. C'est pas la premiere fois que j'entend parler de ce genre de problemes sur les floats en utilisant le compilo de Borland.

Automne
  • 0

#6 KewlCat

KewlCat

    Modérateur

  • Attente Validation
  • 24 812 messages

Posté 10 avril 2002 - 04:34

C'est pas un problème de compilo, c'est juste que les float étant stockés sur une place mémoire limitée, et codant pour une telle quantité de nombres, qu'il est impossible de trouver un float se rapprochant plus de 0,2 que 0,2000000987.

Deux solutions à ce problème : utiliser plus d'espace mémoire pour coder le nombre, ou utiliser un type qui soit plus "restreint" sur le nombre de données codées.
  • 0

#7 Sony

Sony

    Member

  • Membres
  • 37 messages

Posté 11 avril 2002 - 06:44

merci :P
  • 0









Sujets similaires :     x