数字类型实战——整数精确度

未匹配的标注

在Python不同版本之间,除法可能稍有不同,但它仍相当标准。下面是一点更不寻常的内容。如前提到的:Python 3系列的整数支持不受限的尺寸:

>>> 999999999999999999999999999999 + 1 # 3.X
1000000000000000000000000000000

Python 2系列对长整数有一个单独的类型,但它会自动将任何太大的无法在普通整数中保存的数字转换为这个类型。因此,不需要编写任何特殊语法来使用长整数,而且唯一可以得知自己在使用2系列长整数的方法就是打印结果带有一个尾随的”L“:

>>> 999999999999999999999999999999 + 1 # 2.X
1000000000000000000000000000000L

精度不受限的整数是一个方便的内置工具。比如,可以用它们来在Python中直接以美分对美国国债进行计数(如果你真的那么想,而且在电脑上有足够内存来保存今年的预算)。它们还是在第3章例子中,可以对2取那么大幂的原因。下面是系列3和系列2的例子:

>>> 2 ** 200
1606938044258990275541962092341162602522202993782792835301376
>>> 2 ** 200
1606938044258990275541962092341162602522202993782792835301376L

因为Python为了支持扩展的精度,必须完成额外的工作,当数字变大时,整数数学通常比普通数字要慢很多。然而,如果你需要这个精度,它是待使用的内置功能的这个事实会比它的性能损失来得更重要。

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 查看所有版本


暂无话题~