【问题标题】:simple GMP/MPIR questions简单的 GMP/MPIR 问题
【发布时间】:2013-01-13 15:56:31
【问题描述】:

我正在使用 VS 2010 试用 GMP/MPIR,我不明白为什么输入 10 10 的输出为 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); 

}

【问题讨论】:

    标签: gmp


    【解决方案1】:

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

    【讨论】:

    • 就可以了,也解决了gmp_scanf问题,非常感谢!案件结案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-31
    相关资源
    最近更新 更多