# floating point – How to manage division of huge numbers in Python?

## floating point – How to manage division of huge numbers in Python?

In Python 3, `number / 10` will try to return a `float`. However, floating point values cant be of arbitrarily large size in Python and if `number` is large an `OverflowError` will be raised.

You can find the maximum that Python floating point values can take on your system using the `sys` module:

``````>>> import sys
>>> sys.float_info.max
1.7976931348623157e+308
``````

To get around this limitation, instead use `//` to get an integer back from the division of the two integers:

``````number // 10
``````

This will return the `int` floor value of `number / 10` (it does not produce a float). Unlike floats, `int` values can be as large as you need them to be in Python 3 (within memory limits).

You can now divide the large numbers. For instance, in Python 3:

``````>>> 2**3000 / 10
OverflowError: integer division result too large for a float

>>> 2**3000 // 10
123023192216111717693155881327...
``````

If you have an integer and you want each digit in a list, you can use:

``````>>> map(int,list(str(number)))
[1, 5, 0, 3, 0, 0, 7, 6, 4, 2, 2, 6, 8, 3, 9, 7, 5, 0, 3, 6, 6, 4, 0, 5, 1, 2, 4, 3, 7, 8, 2, 5, 2, 4, 4, 5, 4, 8, 4, 0, 6, 6, 4, 5, 0, 9, 2, 4, 8, 9, 2, 9, 7, 8, 7, 3, 9, 9, 9, 7, 0, 1, 7, 4, 8, 2, 4, 4, 2, 9, 6, 9, 5, 1, 7, 1, 3, 4, 8, 5, 1, 3, 3, 1, 7, 9, 0, 1, 0, 1, 9, 3, 8, 4, 2, 0, 1, 9, 2, 9]
``````

it transform the int into a string, then `list` will take each character of the string and put it in a list. Finally, `map` will convert each item of the list into an int again

#### floating point – How to manage division of huge numbers in Python?

Python will automatically handle large `int`s of arbitrary length. What it wont do is handle `float`s of arbitrary length so you need to make sure youre not getting floats along the way.