I have recently notice that int()
rounds a float towards 0, while integer division rounds a float towards its floor.
for instance:
-7 // 2 = -4
int(-7/2) = -3
I have read the documentation which specifies:
class int(x, base=10)
Return an integer object constructed from a number or string x, or return 0 if no arguments are >given. If x is a number, return x.int(). For floating point numbers, this truncates towards zero.
and:
floor division
Mathematical division that rounds down to nearest integer. The floor division operator is //. For example, the expression 11 // 4 evaluates to 2 in contrast to the 2.75 returned by float true division. Note that (-11) // 4 is -3 because that is -2.75 rounded downward. See PEP 238.
But it seems illogical for me that 2 similar operations (float division to integer) should return different results.
Is there any motivation for the differences between the functions?
Thank you.
from What is the reason for difference between integer division and float to int conversion in python?
No comments:
Post a Comment