【Python】除法舍入问题
Python的除法分为普通除法(/
)和整数除法(//
),普通除法返回浮点数,整数除法只保留整数部分(向下取整) 取整函数:int()
是向零取整,math.floor()
是向下取整
余数的符号与除数相同
以下等式恒成立:
1
2
x // y == floor(x / y)
x == (x // y) * y + x % y
x / y | x // y | int(x / y) | floor(x / y) | x % y | |
---|---|---|---|---|---|
x=5, y=2 | 2.5 | 2 | 2 | 2 | 1 |
x=-5, y=2 | -2.5 | -3 | -2 | -3 | 1 |
x=5, y=-2 | -2.5 | -3 | -2 | -3 | -1 |
x=-5, y=-2 | 2.5 | 2 | 2 | 2 | -1 |
在C++和Java中,除法是向零取整的整数除法,余数的符号与被除数相同
以下等式恒成立:
1
x == (x / y) * y + x % y
x / y | x % y | |
---|---|---|
x=5, y=2 | 2 | 1 |
x=-5, y=2 | -2 | -1 |
x=5, y=-2 | -2 | 1 |
x=-5, y=-2 | 2 | -1 |
This post is licensed under CC BY 4.0 by the author.