Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to convert large float values to int?

I have a variable containing a large floating point number, say a = 999999999999999.99

When I type int(a) in the interpreter, it returns 1000000000000000. How do I get the output as 999999999999999 for long numbers like these?

like image 906
Amal Rajan Avatar asked Dec 14 '25 20:12

Amal Rajan


1 Answers

999999999999999.99 is a number that can't be precisely represented in the floating-point format, so Python compromises and picks the closest value that can be represented. In this case, that happens to be 1000000000000000. That's why converting that to an integer gives you 1000000000000000.

If you need more precision than floats can provide, consider using decimal.Decimal.

>>> import decimal
>>> a = decimal.Decimal("999999999999999.99")
>>> a
Decimal('999999999999999.99')
>>> int(a)
999999999999999
like image 114
Kevin Avatar answered Dec 16 '25 09:12

Kevin



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!