By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
464,479 Members | 1,229 Online
Bytes IT Community
+ Ask a Question
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
Share this Question
Share on Google+
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" <ni...@qinqin.comwrote:
What is the expected result of -1/2 in python?
I would say -1, but it depends on whether the "-" is a unary minus.
>>-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
Lie
On Jun 23, 1:32*am, "Serve Lau" <ni...@qinqin.comwrote:
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...recedence.html
. 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
Jun 27 '08 #7

P: n/a
Lie <Li******@gmail.comwrote:
On Jun 23, 1:32*am, "Serve Lau" <ni...@qinqin.comwrote:
>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

This discussion thread is closed

Replies have been disabled for this discussion.