强制python打印整个数字

use*_*216 7 python python-2.7

这是我的问题:

如果我试图打印结果:

2**64
Run Code Online (Sandbox Code Playgroud)

将打印:

18446744073709551616L
Run Code Online (Sandbox Code Playgroud)

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

1.8446744*10**19
Run Code Online (Sandbox Code Playgroud)

这将打印:

1.8446744e+19
Run Code Online (Sandbox Code Playgroud)

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

18446744000000000000
Run Code Online (Sandbox Code Playgroud)

什么意味着我的数字末尾的符号L?

Fre*_*cer 8

首先,数字末尾的L表示类型为'long',您可以通过以下方式检查类型:

>>> type(18446744000000000000)
long
Run Code Online (Sandbox Code Playgroud)

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

>>> long(1.8446744*10**19)
18446744000000000000L
Run Code Online (Sandbox Code Playgroud)

你可以尝试将它转换为int,python会自动将其转换为long.

PS:这只适用于python 2.2和upper,但不适用于python 3


Woo*_*ble 7

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

>>> print "%.0f" % (1.8446744*10**19)
18446744000000000000
Run Code Online (Sandbox Code Playgroud)