2
我試圖使用mpfr_set_str值0.9999存儲到mpfr_t變量()函數MPFR將0.9999舍入爲1?
但0.9999四捨五入爲1(或其他一些價值!= 0.9999)儲存過程中,無論是輪次值(GMP_RNDD ,GMP_RNDU,GMP_RNDN,GMP_RNDZ)
那麼使用mpfr_set_str()將0.9999存儲在mpfr_t變量中的最佳方法是什麼? 這可能嗎?
這裏是我的測試程序,它打印 「緩衝區:1」,而不是想 「緩衝是: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;
}
感謝您的幫助
謝謝,它現在正在工作。 – Silmaersti 2010-05-08 06:03:14