les nombres réels dans c [Xcode IDE]

J'ai commencé à apprendre le langage c, mais le problème est que je suis confus sur la façon d'utiliser les nombres réels. J'utilise Xcode IDE. Voici les résultats qui m'a permis de les confondre:

float x1 = 1.123456789123456789f;  
double x2 = 1.123456789123456789f;  
float x3 = 987654321.123456789f;  
double x4 = 987654321.123456789f;  

printf("x1 = %.20f\n", x1);  
printf("x2 = %.20f\n", x2);  
printf("x3 = %10.10f\n", x3);  
printf("x4 = %10.10f\n", x4);  

La sortie est:

x1 = 1.12345683574676513672 
x2 = 1.12345683574676513672 
x3 = 987654336.0000000000 
x4 = 987654336.0000000000 

La question est, pourquoi x1, x2 perdre leur float chiffres après 1.12345678? Et pourquoi x3 et x4 sont tronqués?

  • Aussi, x3 et x4 produit mal nombres décimaux - 987654336 au lieu de 987654321
InformationsquelleAutor Centurion | 2011-04-22