Printf et float

Résolu
shintaa Messages postés 11 Date d'inscription dimanche 6 juillet 2008 Statut Membre Dernière intervention 9 octobre 2008 - 24 sept. 2008 à 15:00
shintaa Messages postés 11 Date d'inscription dimanche 6 juillet 2008 Statut Membre Dernière intervention 9 octobre 2008 - 24 sept. 2008 à 15:27
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", myFloat) il affiche : 42.419998.
Est-ce que quelqu'un saurait pourquoi il n'affiche pas 42.42 ?
Si oui comment faire pour afficher la vrai valeur du float ?

Merci,

--
Bob & Marie
A voir également:

4 réponses

BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
24 sept. 2008 à 15:22
Ah non, tu ne peux pas avoir cette info...
Tu peux peut-être essayer d'utiliser des double plutôt que des float: les double sont plus précis

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
3
BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
24 sept. 2008 à 15:12
Salut,
Il n'y a pas de "vraie" valeur pour un float car ça dépend beaucoup de la précision machine. C'est pour ça, par exemple, qu'il ne faut pas tester l'égalité entre de float mais plutôt la différence de valeur absolue.
Si tu veux absolument afficher ton float avec 2 décimales, utilises la syntaxe suivante: printf("%.2f\n",myFloat);

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
shintaa Messages postés 11 Date d'inscription dimanche 6 juillet 2008 Statut Membre Dernière intervention 9 octobre 2008
24 sept. 2008 à 15:19
Bonjour,

Oui mais le problème c'est que je ne sais pas forcément le nombre de chiffre après la virgule. Du coup je ne peux pas utiliser un %.2f. C'est pas possible de connaitre le nombre de chiffre après la virgule ?

--
Bob & Marie
0
shintaa Messages postés 11 Date d'inscription dimanche 6 juillet 2008 Statut Membre Dernière intervention 9 octobre 2008
24 sept. 2008 à 15:27
En effet avec des float64 ca fonctionne.

Merci bien :)
0
Rejoignez-nous