我一直很好奇:如何在非常长的小数上执行算术运算 - 例如,将pi计算到第3000个小数位(特别是在命令式语言中)?
答案 0 :(得分:3)
使用支持任意精确数字的语言或库......?
在Python中,int会自动提升为任意大小的long。您可以使用第二个值来跟踪要移位的小数位数,以获得一种任意精度浮点数。
在Java中,您可以使用BigDecimal类,它表示“不可变,任意精度的有符号十进制数”。
我确信其他语言中还有其他例子。
答案 1 :(得分:3)
对于不支持bignums计算的语言,通常有库。例如,您可以查看GMP。这些文档将为您提供一些典型的算法方法。
快速制作bignum算法很困难,因此有一些非常复杂的算法......
答案 2 :(得分:0)
您必须使用数字级别的数据(例如,递增地或确定地计算每个数字)或定义具有足够位数的新数据结构以提供足够的精度。