我正在使用VS2010试用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);
}发布于 2013-01-13 15:56:32
您需要指定mpf_t的精度。请参阅mpf_init2()和mpf_set_default_prec()。
https://stackoverflow.com/questions/14299993
复制相似问题