Steven D'Aprano <steve+pyt...@pearwood.info> added the comment:

There is no need to call int() on a literal int: 1000003 is already an int, 
calling int() on it is just wasting time and making confusing code.

print (int(y1y2y3y4))

gives a NameError, since you don't have a variable "y1y2y3y4" defined. Please 
don't retype your example code from memory, make sure it works and then copy 
and paste code we can actually run.

I think we can simplify your example to this:

x = 1000112004278059472142857
y = 1000003
print(x/y)
print(int(x/y))


which correctly prints 

1.0001090039510477e+18
1000109003951047619

as the division operator uses floating point division in Python 3. Use the 
floor-division operator // to duplicate the Python 2 behaviour for ints.

Closing this as not a bug.

----------
nosy: +steven.daprano
resolution:  -> not a bug
stage:  -> resolved
status: open -> closed

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue35672>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to