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

kaervas Messages postés 51 Date d'inscription vendredi 25 novembre 2005 Statut Membre Dernière intervention 19 avril 2008 - 8 déc. 2005 à 23:30
kaervas Messages postés 51 Date d'inscription vendredi 25 novembre 2005 Statut Membre Dernière intervention 19 avril 2008 - 13 déc. 2005 à 20:43
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

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
9 déc. 2005 à 00:27
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
0
kaervas Messages postés 51 Date d'inscription vendredi 25 novembre 2005 Statut Membre Dernière intervention 19 avril 2008
9 déc. 2005 à 02:25
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.
0
kaervas Messages postés 51 Date d'inscription vendredi 25 novembre 2005 Statut Membre Dernière intervention 19 avril 2008
13 déc. 2005 à 20:43
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.
0
Rejoignez-nous