我需要编写一个计算数学公式的简单程序。 这里唯一的问题是其中一个变量可以取值10^100。 因此,我不能用C++/C编写这个程序(我不能使用像gmp这样的外部库)。 几个小时前,我读到Python能够计算出这样的值。 我的问题是:为什么 处理非常大的数字
print("%.10f"%(10.25**100))
被返回的数量"118137163510621843218803309161687290343217035128100169109374848108012122824436799009169146127891562496.0000000000"
代替 "118137163510621850716311252946961817841741635398513936935237985161753371506358048089333490072379307296.453937046171461"
?
再说下面的答案,还有你的字符串格式代码的问题。您特别要求小数点后10位数字。为什么你会期望输出15位数字?另外,请记住,使用'%'进行打印*实际上会根据说明符转换*值。因此,即使使用'decimal'模块,如果使用'%.10f'打印它,Python将首先将该值转换为'float',并且您仍然会得到相同的结果。 –
仅供参考,Python浮点数与C双精度浮点数相同,并具有53位精度(几乎在所有平台上)。那大约有16或17位十进制数字。这就是为什么你显示的两个结果在它们开始时的许多小数位后不同意。 –