@droggo : j'attends des excuses
@diognene & médinoc : pourquoi faire simple quand on peut faire compliqué
@droggo : j'attends des excuses
@diognene & médinoc : pourquoi faire simple quand on peut faire compliqué
Bah oui, si on ne sait pas utiliser printf(), c'est pas gagné... Faut lire la doc de temps en temps, ça aide...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 #include <stdio.h> #include <stdlib.h> int main (void) { char buffer[]="-789.1234567"; printf ("%s\n", buffer); double d = atof (buffer); printf ("%.7f\n", d); d = strtod (buffer, NULL); printf ("%.7f\n", d); sscanf (buffer, "%lf", &d); printf ("%.7f\n", d); return 0; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 -789.1234567 -789.1234567 -789.1234567 -789.1234567 Press ENTER to continue.
La critique est facile ... surtout dans le forum "Débuter" ...Bah oui, si on ne sait pas utiliser printf(), c'est pas gagné... Faut lire la doc de temps en temps, ça aide...
Pas du tout, par exemple 0.09 ne peut pas être stocké.
Sortie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 #include <stdio.h> int main (void) { printf("%.20f\n", 0.09); return 0; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part 0.08999999999999999667
et si tu regardes ta sortie, tu demandes 20 décimales, ce qui est supérieur à la précision.
Fait .15 et tu verras ;-)
Ça ne change rien au fait qu'un double ne peut pas stocker 0.09.
Un double IEEE, sur 64 bits, peut parfaitement stocker 0.09.
Si je n'ai pas fait n'importe quoi lors de mes tests, il peut même stocker 0.09000000000000000.
Par contre, il ne peut pas stocker 0.090000000000000000.
Quand tu auras fini de te faire mousser tu penseras à poster quelque chose qui a un semblant d'intérêt ?
Je me suis peut-être trompé mais le plus précis que j'ai trouvé c'est 0.0899999999999999966693309261245303787291049957275390625.
De toute façon si celui-là passe bien on peut en choisir un autre, c'est pas ça qui manque...
Qu'est-ce que ça change ?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager