2013-01-13 34 views
0

我嘗試了GMP/MPIR VS 2010中,我不明白爲什麼輸出0.999999999999999999909e101輸入10 10簡單的GMP/MPIR問題

我期望所有的數字顯示,因爲我在mpf_out_str調用中爲1000個n_digits,使用0相同的結果。爲什麼9和909e101?

另外你會如何輸入巨大的數字,gmp_scanf似乎不能處理100位的數字。

#include <mpirxx.h> 

main() 
{ 

    mpf_t tt, t2; 

    mpf_init(tt); 
    mpf_init(t2); 

    gmp_scanf("%Fe\n", tt); 
    gmp_scanf("%Fe\n", t2); 

    for (int i = 0; i < 100; i++) 
     mpf_mul(tt, tt, t2); 

    mpf_out_str(stdout, 10, 1000, tt); 

    mpf_clear(tt); 
    mpf_clear(t2); 

    getc(stdin); 

} 

回答

1

您需要指定mpf_t的精度。請參閱mpf_init2()和mpf_set_default_prec()。

+0

這將做到這一點,也回答gmp_scanf問題,非常感謝!案件結案。 –