简单的GMP / MPIR问题

时间:2013-01-13 02:12:59

标签: gmp

我正在尝试使用VS 2010的GMP / MPIR,我不明白为什么输出为1099的输出为0.999999999999999999909e101。

我希望显示所有数字,因为我在mpf_out_str调用中为n_digits放了1000,使用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 个答案:

答案 0 :(得分:1)

您需要指定mpf_t的精度。请参阅mpf_init2()和mpf_set_default_prec()。