Em Sáb, 2006-02-11 às 14:52 -0500, John Salerno escreveu: > Hi all. I'm just starting out with Python, so I'm a little slow right > now. :) > > Can someone explain to me why the expression 5 / -2 evaluates to -3, > especially considering that -2 * -3 evaluates to 6? > > I'm sure it has something to do with the negative number and the current > way that the / operator is implemented, but why doesn't it evaluate to > -2 instead?
It has to do with floating point operations. If you evaluate 5 / -2.0 or 5.0 / -2 you will have -2.5. It gives you -3 because of rounding to integers. Look: >>> round(-2.5) -3.0 >>> round(+2.5) 3.0 This behavior is because -round(x) should be equal to round(-x). Cya, Felipe. -- "Quem excele em empregar a força militar subjulga os exércitos dos outros povos sem travar batalha, toma cidades fortificadas dos outros povos sem as atacar e destrói os estados dos outros povos sem lutas prolongadas. Deve lutar sob o Céu com o propósito primordial da 'preservação'. Desse modo suas armas não se embotarão, e os ganhos poderão ser preservados. Essa é a estratégia para planejar ofensivas." -- Sun Tzu, em "A arte da guerra" -- http://mail.python.org/mailman/listinfo/python-list