begin process at 2012 05 28 16:23:53
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Maths & Algorithmes

 > 

afficher un float


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

afficher un float

mardi 29 mars 2005 à 20:13:06 | afficher un float

vecchio56

Administrateur CodeS-SourceS
Bonjour a tous
J'essaie de faire une fonction pour mettre un float dans un char*. Le problème, c'est que quand je veux afficher 17.15 par exemple, ca pose problème puisque 15 ne peut pas être codé précisément, j'affiche donc 17.14999961853027343750000.
Y-a-t il bon moyen pour éviter cela.
D'un autre coté, si on affiche 17.15, ca veut dire que quand on veut réellement afficher 17.14999961853027343750000, on ne peut pas...
Comment dois-je faire?
Merci
mardi 29 mars 2005 à 20:48:56 | Re : afficher un float

DeAtHCrAsH

Pas compris le problème pour ma part.

Shell
mardi 29 mars 2005 à 20:55:00 | Re : afficher un float

vecchio56

Administrateur CodeS-SourceS
Non en fait le problème que j'ai n'a pas de solution, printf donne le même résultat:

float f = 17.15f;
printf("%f", f); affiche bien 17.150000
mais
printf("%.6f", f); affiche 17.1499996
mardi 29 mars 2005 à 21:18:58 | Re : afficher un float

DeAtHCrAsH

Bizarre ton résultat.
Dans tout les cas tu devrais obtenir la meme chose.
Tout du moins, sous gcc on obtient 17.150000 pour chacune des ecritures, ce qui au passage parrait normal.

%0.6f ne fait que tronquer a 6 décimales après la virgules.
puis %f  n'affiche que 6 décimal par défaut.

Faut voir du coté des otpimisations du compilo.

Shell
mardi 29 mars 2005 à 21:21:26 | Re : afficher un float

tibob51

Membre Club
utilise des "double"
mardi 29 mars 2005 à 21:37:36 | Re : afficher un float

vecchio56

Administrateur CodeS-SourceS
Je travaille avec des floats, c'est un choix. Regardez comment sont codés les floats en mémoire, et vous verrez qu'il est impossible de coder la partie décimale 15:
0.15=10011001...1001....

Rien a voir avec les optimisation du compilateur à mon sens
mercredi 30 mars 2005 à 09:26:50 | Re : afficher un float

DeAtHCrAsH

Ca faudrait demandé a BruNews.
En tous cas ca paraitrai bete que 0.15 se transforme en 0.1499996 en mémoire...

Shell
mercredi 30 mars 2005 à 10:07:00 | Re : afficher un float

vecchio56

Administrateur CodeS-SourceS
Mais pas du tout. On a 32 bits, donc il n'est pas possible de coder précisément tous les réels. Regarde le codage avec la norme IEEE 754
mercredi 30 mars 2005 à 11:38:52 | Re : afficher un float

DeAtHCrAsH

Je ne connais pas toute ces normes de codage.
Ce qui me parait bizarre c'est que 0.15 serait alors codait 0.149996.
L'erreur est minime mais le résultat est faux.

En tous cas comme tu le dis c'est probablement une histoire de normalisation, aussi tordu soit elle.

Shell
mercredi 30 mars 2005 à 15:10:28 | Re : afficher un float

vecchio56

Administrateur CodeS-SourceS
Je crois que si elle était tordue on l'aurait pas choisit... Essaie de trouver une autre facon de coder le même intervalle de nombre réels et tu verras que ce n'est pas si simple.
0.15 est codé par 0.125 + 0,015625+...

1 2

Cette discussion est classée dans : affiche, problème, afficher, float


Répondre à ce message

Sujets en rapport avec ce message

Problème! [ par arfimounir ] Salut,         Mon premier problème c'est: j'ai fait un PROGRESS_BAR dans une boîte de dialogue dans un editeur de resource. Quand je l'éxecute dans m Problème incroyable !!! [ par nisaloncaje ] Bonjour j'utilise dev c++ et j'utilise le code - on ne peut plus simple - suivant : #include #include using namespace std; int main(){float i=5 a l'aiiiiiiiiiiiiiiide [ par neothman ] bonjour a tous voici trois exercice de base en C++ mais avec lesquels j'ai eu quand meme un peu de dificulté faut le dire :s :s :s si quelqun pourrai heritage [ par redha_0172 ] salut tout le monde,voici mon problème:j'ai les classes suivantes: Personne{.....virtuel void afficher();}Salarie : public Personne{.................. Problème flocon de Koch [ par Michococo ] Bonjour à tous,je planche depuis un petit moment sur un problème de récursivité, j'aimerais afficher le flocon de Koch (jusque-là tout va bien) mais e Afficher un float a l'ecran, %f de printf [ par kaervas ] Bonjour, je suis en train de coder la fonction %f de printf, je galere un peu en fait! Pour le %d on utilise des modulos et des puissances decroissant programme qui affiche un triangle [ par laguchori ] Bonjour , J'ai un projet à faire qui consiste à créer une classe ligne et la tracer à partir de deux point et ensuite créer une Class triangle dérivée printf et float [ par shintaa ] Bonjour,Nous avons un problème avec la fonction printf.En déclarant un float 42.42 et en demandant à printf de nous l'écrire avec printf("%f\n", myFlo Afficher une image dans un contrôle [ par tigerskin ] Salut !J'ai un problème : je dois afficher dans ma boite de dialogue une image JPEG. J'utilise pour cela une fonction trouvée sur CPPFrance (LoadAnIma


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,593 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales