Afficher un float a l'ecran, %f de printf

Signaler
Messages postés
51
Date d'inscription
vendredi 25 novembre 2005
Statut
Membre
Dernière intervention
19 avril 2008
-
Messages postés
51
Date d'inscription
vendredi 25 novembre 2005
Statut
Membre
Dernière intervention
19 avril 2008
-
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 decroissantes, bon. Mais pour les floats les modulos on pas l'air de marcher...

J'avais pense en couvertissant le float en int, du genre j'ai 3.12, je le passe en int ca me donne 3, j'affiche le nbre, j'affiche le point, je reprends mon float je multiplis par 10 puissance (le nombre de chiffre que je veux apres la virgule), je repasse en int, et j'affiche les chiffres avec des modulos et des multiplications par 10 en n'affichant pas le nombre de chiffre qui correspondront a la partie entiere situer en tete de l'int.

En gros si c'est possible a faire il me faut un truc pour convertir un flat en int,
Quelqu'un a une idee?

3 réponses

Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
8
J'ai essayé de le faire, ca peut peut-être t'aider
http://www.cppfrance.com/code.aspx?ID=30521

Rensigne toi sur la manière dont sont codés les flottants, ca n'a rien a voir avec les entiers
Messages postés
51
Date d'inscription
vendredi 25 novembre 2005
Statut
Membre
Dernière intervention
19 avril 2008

ha ouais ca a l'air plus complique que je pensais...
c'est bizare, un float ...

Enfin merci quand meme je pense que ce n'est pas de mon niveau.
Messages postés
51
Date d'inscription
vendredi 25 novembre 2005
Statut
Membre
Dernière intervention
19 avril 2008

Pour info trouver quelque chose qui a l'air de marcher,
comparer un int et un float dans une boucle.
pour la partie entiere, incrementer l'int de 1 jusqu'a avoir la valeure du float, pour la partie flotante, retrancher la partie entiere trouvee (en la mettant dans un float de la meme facon) pour avoir 0,xxx, multiplier par 10 puissance le nombre de chiffre que vous voulez (6) pour le f par defaut, et mettre dans un int. afficher le premier int avec modulos et multiplications par 10, un point, et le deuxieme de la meme facon. C'est lent mais ca peut aller plus vite si, dans les boucle au debut on increment de 1million, si le nombre en superieur on retranche 1 million et on ajoute 100 000, si encore superieur on retranche 100 000 ect, jusqu'a avoir une precision de 1 pour le nombre precisement.