似乎有些情况下应用 floor 除法和除法后的 int() 之间的输出不同。 能否解释一下原因或具体案例?
问题: int(a//b) 不等于 int(a/b)
情况: a 和 b 是整数且 0 < a,b <= 1e18
设置: Python 3.4.3
注意: 具体的案例我就不一一列举了,因为都是在线评委测试的,测试用例是不公开的。
希望得到您的帮助。 谢谢。
最佳答案
具体示例(在 Python 3.4.4 shell 中):
>>> int(99999999999999999/100000000000000000)
1
>>> 99999999999999999//100000000000000000
0
当(数学) float 除法的结果非常接近整数时会发生这种情况,因此数值 float 除法结果会四舍五入到该整数。
关于python - 划分后应用floor division和int()有什么区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47724740/