它们对于小数字似乎是相等的,但对于大数字则不同。a // b和int(a/b)之间有什么区别?
例如:
a = int(1267650600228229401496703205376/10)
b = 1267650600228229401496703205376 // 10
print(a - b) # prints 7036874417767
a = int(1493845793475/10)
b = 1493845793475 // 10
print(a - b) # prints 0
怎么来的?
'INT(A/B)'被截断向零。 –
在Python3中,'a/b'将执行浮点除法,这是不精确的。即使您将结果转换为int,您也已经引入了不精确性。 – khelwood
这仅适用于Python 3.对于Python 2,它在两种情况下均为0。 –