2013-09-16 15 views
5

Oto mój problem:Siła pyton wydrukować cały numer

Gdyby spróbować na przykład wydrukować wynik:

2**64 

wypisze:

18446744073709551616L 

ale teraz gdybym chcesz wydrukować wynik:

1.8446744*10**19 

To będzie drukować:

1.8446744e+19 

Więc moje pytanie brzmi: w jaki sposób mogę wydrukować cały wynik 1.8446744e + 19 Chcę zobaczyć:

18446744000000000000 

i co oznacza znak L na końcu moich liczb?

+1

Jak jesteś „drukowanie” te? 'L' nie powinno być wyświetlane, jeśli używasz' print'. – geoffspear

+0

@Wooble Jeśli użyjesz terminala Pythona i ocenisz '2 ** 64', to wydrukujesz jako OP: ' >>> 2 ** 64 18446744073709551616L ' – Freddie

Odpowiedz

7

Najpierw L na końcu numeru oznacza typ to „długi” można sprawdzić typ przez:

>>> type(18446744000000000000) 
long 

Następnie dostać nie swój wynik w notacji naukowej można tylko konwertować numer do długiego:

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

Możesz spróbować przekonwertować go jako int, python automatycznie przekonwertuje go na długi.

PS: To działa tylko dla Pythona 2.2 i górna ale nie dla Pythona 3

+1

Po prostu użyj' int' zamiast ' long' i to będzie dobrze aż do punktu i tak –

+0

dzięki za precyzję – Freelancer

6

formatowania Zastosowanie ciąg ustawić format, który chcesz wyświetlić:

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