0

VS2010でGMP/MPIRを試していますが、入力1010の出力が0.999999999999999999909e101である理由がわかりません。

同じ結果0を使用して、mpf_out_str呼び出しでn_digitsに1000を入力したため、すべての数字が表示されると思います。そして、なぜ9と909e101なのか?

また、巨大な数値をどのように入力しますか。gmp_scanfは数百桁を処理していないようです。

#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); 

}
4

1 に答える 1

1

mpf_tの精度を指定する必要があります。mpf_init2()およびmpf_set_default_prec()を参照してください。

于 2013-01-13T07:56:31.640 に答える