How convert string '1e7' to an integer?

Gary Herron gherron at islandtraining.com
Sun Nov 8 02:50:53 CET 2009


Mensanator wrote:
> On Nov 7, 7:17 pm, Peng Yu <pengyu... at gmail.com> wrote:
>   
>> It seems that int() does not convert '1e7'.
>>     
>
> Because 'e' isn't a valid character in base 10.
>   

But 1e7 is a valid float, so this works:

 >>> int(float('1e7'))
10000000

That has a problem though, if you surpass the ability of a float:

 >>> int(float('1e20'))
100000000000000000000L
 >>> int(float('1e30'))
1000000000000000019884624838656L


Gary Herron



>   
>> I'm wondering what
>> function to use to convert '1e7' to an integer?
>>
>>     
>>>>> int('1e7')
>>>>>           
>
>   
>>>> int(1e7)
>>>>         
> 10000000
>
>
>   
>> Traceback (most recent call last):
>>   File "<stdin>", line 1, in <module>
>> ValueError: invalid literal for int() with base 10: '1e7'
>>     
>
>   




More information about the Python-list mailing list