Gary Herron schreef:
> Mensanator wrote:
>> On Nov 7, 7:17 pm, Peng Yu <pengyu...@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
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to