我刚刚开始使用 MPFR 任意精度库,很快就会遇到非常奇怪的行为。使用它的主要目标是提高大参数“触发”的精度,这在 MPFR 中非常有效。
但后来我决定检查简单的数学,这令人难以置信——即使在具有严格答案的简单示例中也存在舍入错误,并且不依赖于使用的精度。
即使在像 1.1 * 1 这样的示例中,结果也是 1.10000000000000008881784...而且这个结果以疯狂的 2000 位精度(正常双精度为 53)给出!
可能是我的系统问题,但在线MPFR也存在类似问题。您可以在线尝试这样的示例:http: //ex-cs.sist.ac.jp/~tkouya/try_mpfr.html
1 * 1.1 @ 64 位 = 1.10000000000000000002
但是在线版本会随着精度的提高而进一步移动错误,但在我的安装中 - 没有。
我的系统:Ubuntu 9.10 + gmp 5.0.0.1 + mpfr 2.4.2