我一直很好奇:如何在非常长的小数上执行算术运算 - 例如,将pi计算到第3000个小数位(特别是在命令式语言中)?

有帮助吗?

解决方案

使用支持任意精确数字的语言或库......?

在Python中,int会自动提升为任意大小的long。您可以使用第二个值来跟踪要移位的小数位数,以获得一种任意精度浮点数。

在Java中,您可以使用 BigDecimal class,表示“不可变,任意精度的有符号十进制数”。

我确信其他语言中还有其他例子。

其他提示

对于不支持bignums计算的语言,通常有库。例如,您可以查看 GMP 。这些文档将为您提供一些典型的算法方法。

快速制作bignum算法很困难,因此有一些非常复杂的算法......

您必须使用数字级别的数据(例如,递增地或确定地计算每个数字)或定义具有足够位数的新数据结构以提供足够的精度。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top