Защо така ?
>>> round(2/3)
0.0
>>> round(0.66666666666666666666666666666667)
1.0
>>> round(2.0/3)
1.0
Отговори:
16 за отговор № 1Това не е странно поведение от round()
:
Опитайте тази:
>>> 2/3
0
Използвайки /
с две цели стойности ще направи цяло число разделяне. Така че аргумент да се round()
е вече 0, което прави round()
връщане 0.
Update: както @Mark отбеляза в коментара, това поведение се промени в Python 3: 2/3
ще направи разделянето с плаваща запетая като 2.0/3
в Python 2. 2//3
може да се използва за получаване на цялостно поведение на разделяне на двете версии).
Последният Ви пример работи, защото 2.0
не е цяло число, така че 2.0/3
ще направи "пропар" плаваща точка дивизия:
>>> 2.0/3
0.6666666666666666