0

我一直很好奇:我怎样才能对很长的小数进行算术运算——例如,将 pi 计算到小数点后 3000 位(尤其是在命令式语言中)?

4

3 回答 3

3

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

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

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

我确信其他语言中存在其他示例。

于 2009-05-04T22:23:09.187 回答
3

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

使 bignum 算术变得快速是困难的,所以那里有一些非常复杂的算法......

于 2009-05-04T22:25:03.550 回答
0

您要么必须在数字级别处理数据(例如,以增量方式或确定性方式计算每个数字),要么定义具有足够位数以提供足够精度的新数据结构。

于 2009-05-04T22:21:30.610 回答