8

这是我的问题:

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

2**64

将打印:

18446744073709551616L

但是现在如果我想打印结果:

1.8446744*10**19

这将打印:

1.8446744e+19

所以我的问题是:如何打印我想看到的 1.8446744e+19 的​​整个结果:

18446744000000000000

我的数字末尾的符号 L 是什么意思?

4

2 回答 2

10

使用字符串格式设置要显示的格式:

>>> print "%.0f" % (1.8446744*10**19)
18446744000000000000
于 2013-09-16T17:26:37.943 回答
8

首先,数字末尾的 L 表示类型是“长”,您可以通过以下方式检查类型:

>>> type(18446744000000000000)
long

然后,为了让您的结果不是科学记数法,您可以将您的数字转换为长整数:

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

您可以尝试将其转换为int,python会自动将其转换为long。

PS:这仅适用于 python 2.2 和更高版本,但不适用于 python 3

于 2013-09-16T17:22:20.997 回答