Bonjour,

J'utilise GMP pour développer un programme qui effectue différents calculs astronomiques. Quand j'utilise des entiers, pas de problème mais quand j'utilise des floats, il y a comme un problème de précision ou d'arrondis.

Le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
#include <gmp.h>
 
void main() {
 
mpf_t G; // Déclaration
mpf_init (G); // Initialisation
mpf_set_d (G, 0.000000000667428 ); // Affectation
gmp_printf("G = %Ff\n", G); //Affichage
}
Sortie :
0.000000000667428000000000024141

Ce sont les derniers chiffres qui me posent problème.

Pour
mpf_set_d (G, 1.989e30 );

J'obtiens :
1988999999999999901910000000000

Pourquoi ces résultats?
J'utilise gcc 4.4.5 sur Linux Ubuntu 10.10.
Merci d'avance pour les conseils que vous pourrez me donner !