je tente de stocker la valeur 0,9999 dans une variable mpfr_t en utilisant la fonction mpfr_set_str()MPFR Arrondi 0,9999 à 1?
Mais 0,9999 est arrondi à 1 (ou une autre valeur! = 0,9999) pendant le stockage, peu importe la valeur ronde (GMP_RNDD , GMP_RNDU, GMP_RNDN, GMP_RNDZ)
Alors quelle est la meilleure méthode pour stocker 0.9999 dans une variable mpfr_t en utilisant mpfr_set_str()? Est-ce possible?
Voici mon programme de test, il imprime "tampon est: 1", au lieu de la voulait "tampon est: 0,9999":
int main()
{
size_t precision = 4;
mpfr_t mpfrValue;
mpfr_init2(mpfrValue, precision);
mpfr_set_str(mpfrValue, "0.9999", 10, GMP_RNDN);
char *buffer = (char*)malloc((sizeof(char) * precision) + 3);
mp_exp_t exponent;
mpfr_get_str(buffer,
&exponent,
10,
precision,
mpfrValue,
GMP_RNDN);
printf("buffer is: %s\n", buffer);
free(buffer);
mpfr_clear(mpfrValue);
return 0;
}
Merci pour l'aide
Merci, ça marche maintenant. – Silmaersti