【发布时间】:2011-02-21 14:37:46
【问题描述】:
我需要编写一些程序来计算任意精度的数字...
但我需要它将已经“确定”的数字(即低于某些错误范围)输出到文件中,以便在程序继续运行时有数字可以处理。
此外,大多数任意精度的库似乎都需要固定精度,但如果我想要动态精度怎么办,也就是说,它会一直持续下去......
【问题讨论】:
我需要编写一些程序来计算任意精度的数字...
但我需要它将已经“确定”的数字(即低于某些错误范围)输出到文件中,以便在程序继续运行时有数字可以处理。
此外,大多数任意精度的库似乎都需要固定精度,但如果我想要动态精度怎么办,也就是说,它会一直持续下去......
【问题讨论】:
大多数将数字计算到扩展精度的算法都要求所有中间计算都以更高的精度进行,以保证准确的结果。您通常会指定最终所需的精度,这就是您得到的结果。如果要在计算过程中输出“已知”的准确数字,一般需要自己实现算法并跟踪准确数字。
不知道你要计算什么数字,我无法提供更好的建议。
GMP/MPIR 仅支持非常基本的浮点计算。 MPFR 需要 GMP 或 MPIR,提供更广泛的浮点运算集。
【讨论】:
我的建议是使用MPIR。它是 GMP 的一个分支,但(在我看来)拥有更乐于助人和对开发人员友好的团队。
【讨论】:
mpf_set_default_prec 更改精度,这样您就不会被特定的编译时精度所束缚。它不会自动提高运算的精度,但无论如何这样做都是一件坏事——如果你想看到一个咆哮,你应该有一天问问数学家 :-)