2011-08-10 4 views
6

Par curiosité, je couru les suivantes:question Python sur les exposants et int

>>> int(1e100) 

Et, la sortie était:

10000000000000000159028911097599180468360808563945281389781327557747838772170381060813469985856815104L 

Pourquoi? Pourquoi cela ressemble pas:

10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000L 

Est-ce un produit de la fonction int ou du stockage d'un grand long?

+0

Essayez ceci: '10 ** 100' vous obtiendrez ce que vous attendez. Il n'y a pas de virgule flottante impliquée dans cette méthode. – Keith

+0

@keith - merci. Je n'ai pas de besoin pratique pour ça. J'ai seulement essayé par curiosité. – orokusaki

Répondre

1

Il a été converti en un flottant puis affiché en entier. Alors, bienvenue dans le monde imprécis de l'arrondissement

0

1E100 est un flotteur (en général, en utilisant la e implique float):

>>> type (1e100) 
<type 'float'>