What is the expected result of -1/2 in python?
-1/2
Collapse
This topic is closed.
X
X
-
Serve LauTags: None -
Christian Heimes -
Gary Herron
Re: -1/2
Serve Lau wrote:From the manual:What is the expected result of -1/2 in python?
>
--
http://mail.python.org/mailman/listinfo/python-list
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
Comment
-
Gary Herron
Re: -1/2
Christian Heimes wrote:No. That's not right. (It would be in C/C++ and many other languages.)Serve Lau wrote:
>>>What is the expected result of -1/2 in python?
>>
0
>
>
See my other response for the correct answer.
Gary Herron
Comment
-
drobinow@gmail.com
Re: -1/2
On Jun 22, 2:32 pm, "Serve Lau" <ni...@qinqin.c omwrote:I would say -1, but it depends on whether the "-" is a unary minus.What is the expected result of -1/2 in python?
-1>>-1/23>>3 -1/2
Comment
-
Terry Reedy
Re: -1/2
Serve Lau wrote:Python 3.0b1 (r30b1:64403M, Jun 19 2008, 14:56:09) [MSC v.1500 32 bitWhat is the expected result of -1/2 in python?
(Intel)]
n win32
Type "help", "copyright" , "credits" or "license" for more information.-0.5>>-1/2
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
Comment
-
Lie
Re: -1/2
On Jun 23, 1:32 am, "Serve Lau" <ni...@qinqin.c omwrote: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
Comment
-
Duncan Booth
Re: -1/2
Lie <Lie.1296@gmail .comwrote:
Python 2.x gives -1 or -0.5 depending on the division mode in operation andOn Jun 23, 1:32 am, "Serve Lau" <ni...@qinqin.c omwrote:>>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:
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
>
for -1 may also generate a deprecation warning:
C:\>python25\py thon -Qnew -c "print -1/2"
-0.5
C:\>python25\py thon -Qwarn -c "print -1/2"
-c:1: DeprecationWarn ing: classic int division
-1
--
Duncan Booth http://kupuguy.blogspot.com
Comment
Comment