我需要在 Dyalog APL 中精确工作。我知道 ⎕PP 的值设置了精度,但是我不能将它增加到 18 以上,所以我不能得到超过 18 位的精度,我需要用大数字来操作。有什么办法可以提高精度吗?
3 回答
Dyalog APL 13.0 版目前处于测试阶段,计划于 3 月底发布,允许用户决定是使用旧的 IEEE-754 二进制双精度格式(最大精度为 16 位),还是使用 IEE- 754-2008 128 位十进制浮点数。新格式具有 34 位精度,还避免了旧二进制格式引起的一些舍入问题。除非您在 IBM POWER 硬件上运行 APL,否则使用新格式的计算会明显变慢,该硬件支持 P6 中的新格式。如果您想参与 Beta 计划,请联系 sales@dyalog.com。
13.0 版还在 Dyalog APL 中增加了对复数的支持——但仅使用一对二进制双精度数——目前不会有十进制复数。
我们正在努力支持无限精度整数和有理数。这种原型可能会在 2011 年出现,但我们预计最早要到 2012 年才能将其投入生产。
Morten Kromberg(Dyalog Ltd 首席技术官)
Quad PP 用于“打印精度”,仅与 Dyalog APL 会话中显示数字有关,与数字的实际精度无关。
提供了一个名为“dfns”的工作区,其中包含用于处理大数字的函数。
跟进 Morten 的回复,Dyalog APL 自 2011 年发布 13.0 版本以来确实支持 128 位四精度十进制浮点数!您可以通过将系统变量 ⎕FR 设置为 645(对于双精度二进制)或 1287(对于四精度十进制)来切换浮点格式。在线尝试!