强制Python打印完整数字

8

这是我的问题:

如果我尝试打印以下结果:

2**64

将打印:

18446744073709551616L

但是现在,如果我想要打印出以下结果:
1.8446744*10**19

这将会输出:
1.8446744e+19

所以我的问题是:如何打印出1.8446744e+19的完整结果,我想看到的是:
18446744000000000000

“L”在数字末尾的意思是什么?

1
你是如何“打印”它们的?如果使用“print”,L不应该被显示。 - Wooble
@Wooble 如果你只是使用Python终端,并评估2**64,它会像OP所述打印出来: >>> 2**64 18446744073709551616L - Freddie
2个回答

10
使用字符串格式化来设置您想要显示的格式:

使用字符串格式化来设置您想要显示的格式:

>>> print "%.0f" % (1.8446744*10**19)
18446744000000000000

8

首先,号码末尾的 L 表示这是一个“长整型”,你可以通过以下方式检查类型:

>>> type(18446744000000000000)
long

如果您希望得到非科学计数法的结果,您可以将数字转换为长整型:

>>> long(1.8446744*10**19)
18446744000000000000L

你可以尝试将其转换为整数,Python会自动将其转换为长整型。
PS:这仅适用于Python 2.2及以上版本,但不适用于Python 3。

1
只需使用“int”而不是“long”,在一定程度上它就可以正常工作。 - Jon Clements

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接