2013-09-16 63 views
5

这里是我的问题:部队蟒蛇打印整个数字

如果我尝试例如打印的结果:

2**64 

会打印:

18446744073709551616L 

但现在,如果我想要打印的结果:

1.8446744*10**19 

这将打印:

1.8446744e+19 

所以我的问题是:我怎么能打印的1.8446744e + 19的整个结果我想看看:

18446744000000000000 

什么在最后表示标记L我的号码?

+1

你怎么样“印刷”这些?如果您使用“打印”,则不应显示“L”。 – geoffspear

+0

@Wooble如果你只是使用python终端,并评估'2 ** 64'它会打印出OP作为: '>>> 2 ** 64 18446744073709551616L ' – Freddie

回答

7

首先将L您电话的结束意味着类型是“长”,你可以通过检查类型:

>>> type(18446744000000000000) 
long 

然后让你的结果不能作为科学记数法你可以转换您数字为长:

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

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

PS:这仅适用于在Python 2.2和上而不是蟒蛇3

+1

只需使用'int'而不是'长',它会很好,直到一个点无论如何 –

+0

感谢精度 – Freelancer

6

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

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