How convert string '1e7' to an integer?
Roel Schroeven
rschroev_nospam_ml at fastmail.fm
Sun Nov 8 04:37:34 EST 2009
Gary Herron schreef:
> 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
If that is a concern, decimal can help:
>>> import decimal
>>> int(decimal.Decimal('1e30'))
1000000000000000000000000000000L
--
The saddest aspect of life right now is that science gathers knowledge
faster than society gathers wisdom.
-- Isaac Asimov
Roel Schroeven
More information about the Python-list
mailing list