/ / Защо това странно поведение на "кръгла" вградена инча (python 2.6) - python, закръгляване

Защо това странно поведение на "кръг" е построено инча (python 2.6) - питън, закръгляване

Защо така ?

>>> 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