464,479 Members | 1,229 Online
Need help? Post your question and get tips & solutions from a community of 464,479 IT Pros & Developers. It's quick & easy.

-1/2

 P: n/a What is the expected result of -1/2 in python? Jun 27 '08 #1
7 Replies

 P: n/a Serve Lau wrote: What is the expected result of -1/2 in python? 0 Christian Jun 27 '08 #2

 P: n/a Serve Lau wrote: What is the expected result of -1/2 in python? -- http://mail.python.org/mailman/listinfo/python-list From the manual: The result is always rounded towards minus infinity: 1/2 is 0, (-1)/2 is -1, 1/(-2) is -1, and (-1)/(-2) is 0. Gary Herron Jun 27 '08 #3

 P: n/a Christian Heimes wrote: Serve Lau wrote: >What is the expected result of -1/2 in python? 0 No. That's not right. (It would be in C/C++ and many other languages.) See my other response for the correct answer. Gary Herron Christian -- http://mail.python.org/mailman/listinfo/python-list Jun 27 '08 #4

 P: n/a On Jun 22, 2:32*pm, "Serve Lau" >-1/2 -1 >>3 -1/2 3 Jun 27 '08 #5

 P: n/a Serve Lau wrote: What is the expected result of -1/2 in python? Python 3.0b1 (r30b1:64403M, Jun 19 2008, 14:56:09) [MSC v.1500 32 bit (Intel)] n win32 Type "help", "copyright", "credits" or "license" for more information. >>-1/2 -0.5 as expected ;-) -1//2 is as Gary Herron specified from the manual, for reasons posted here several times and which should be in the FAQ Jun 27 '08 #6

 P: n/a On Jun 23, 1:32*am, "Serve Lau"

 P: n/a Lie What is the expected result of -1/2 in python? Operator precedence: Both python 2 and 3 follows the same rule for operator precedence, see: http://www.ibiblio.org/g2swap/byteof...precedence.htm l . In -1/2, unary negative takes precedence, then division, i.e. it's interpreted as ((-1) / 2). Py3k and Python 2 differences: Before Python 3, integer division is always rounds to minus infinity. In Python 3, integer division yields floats. To use integer division in Python 3, you use // operator. Simple answer: Python 2: (-1)/2 = round(-0.5) = -1 Py3k: (-1)/2 = float(-1) / float(2) = -0.5 Python 2.x gives -1 or -0.5 depending on the division mode in operation and for -1 may also generate a deprecation warning: C:\>python25\python -Qnew -c "print -1/2" -0.5 C:\>python25\python -Qwarn -c "print -1/2" -c:1: DeprecationWarning: classic int division -1 -- Duncan Booth http://kupuguy.blogspot.com Jun 27 '08 #8