web-dev-qa-db-fra.com

Nombre de chiffres décimaux en C

J'aime changer le nombre de chiffres décimaux affichés chaque fois que j'utilise un nombre à virgule flottant en C. Cela at-il quelque chose à voir avec la valeur FLT_Dig définie dans float.h? Si oui, comment pourrais-je changer cela de 6 à 10?

Je reçois un nombre comme 0.000000 alors que la valeur réelle est 0.0000003455.

5
kosmoplan

Il y a deux problèmes distincts ici: La précision du nombre à virgule flottante stockée, qui est déterminée en utilisant float vs double et il y a ensuite la précision du nombre imprimé en tant que tel:

float foo = 0.0123456789;
printf("%.4f\n", foo);  // This will print 0.0123 (4 digits).

double bar = 0.012345678912345;
printf("%.10lf\n", bar);  // This will print 0.0123456789
12
epsalon

J'ai expérimenté ce problème et j'ai découvert que vous ne pouvez pas avoir une grande précision avec float, ils sont vraiment mauvais. il suffit de mentionner% .10lf pour une précision jusqu’à 10 décimales

0
user5910213