Python: int (3.0) = 2

Соблюдайте следующую программу python

def goo(y,x): y = float(y) x = float(x) yup = (y - x - 1) / x yup = str(yup) yup = yup.split(".") decimal = "." + yup[1] decimal = float(decimal) output = decimal / (1/x) print output print int(output) goo(9,5) 

Когда программа выполняет «вывод печати», ответ будет 3.0

Когда программа выполняет «print int (output)», ответ 2

«print int (output)» должен выполнить для доставки 3, а не 2

Почему это происходит?

Значение по умолчанию для оператора print – округление значения до ближайшего. int() усекает.

 >>> print 2.99999999999999 3.0 >>> print int(2.99999999999999) 2 

Если вы хотите увидеть более точное представление, используйте repr .

 >>> print repr(2.9999999999999) 2.9999999999999