Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.python > #6288

Re: -1//2

From "Peter J. Holzer" <hjp-usenet4@hjp.at>
Newsgroups de.comp.lang.python
Subject Re: -1//2
Date 2025-04-10 20:08 +0200
Organization LUGA
Message-ID <slrnvvg291.2oarc.hjp-usenet4@trintignant.hjp.at> (permalink)
References <m5q46bFbsj1U1@mid.individual.net> <m5q4rgFbtc4U1@mid.individual.net>

Show all headers | View raw


On 2025-04-10 15:02, Peter Heitzer <peter.heitzer@rz.uni-regensburg.de> wrote:
> Hermann Riemann <nospam.ng@hermann-riemann.de> wrote:
>>Das Ergebnis von -1//2 ist laut Python3 -1
>>Wegen Vorzeichen shift?
> Der Operator // macht eine Floor Division und math.floor(-0.5) ergibt
> -1.

Die Floor-Division in Python ist allerdings etwas ungewöhnlich.

Sie hat aber den Vorteil, dass sowohl
    a // b * b + a % b == a 
gewährleistet ist als auch dass
    a % b
zwischen 0 und b liegt.

Die meisten Programmiersprachen runden bei Integer-Division Richtung 0
("abschneiden").

Damit ist nur mehr eine der beiden Bedingungen erfüllbar.
In C oder PostgreSQL ist es die erste (dafür liegt dann a % b zwischen
-b und b).

In Perl ist der % Operator so wie in Python definiert, aber Perl hat
keine echte Integer-Division, also ist schwer zu sagen, wie die
definiert wäre, wenn es sie gäbe. In den Fällen, wo Perl einen Integer
erwartet (z.B. als Array-Index) und einen Float-Wert bekommt, schneidet
es aber ab, was nahelegt, dass die Gleichung nicht erfüllt wäre.

        hjp

Back to de.comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

-1//2 Hermann Riemann <nospam.ng@hermann-riemann.de> - 2025-04-10 16:50 +0200
  Re: -1//2 "Peter Heitzer" <peter.heitzer@rz.uni-regensburg.de> - 2025-04-10 15:02 +0000
    Re: -1//2 "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2025-04-10 20:08 +0200
      Re: -1//2 "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2025-04-23 22:10 +0200
    Re: -1//2 Hermann Riemann <nospam.ng@hermann-riemann.de> - 2025-04-11 06:27 +0200
      Re: -1//2 "Peter Heitzer" <peter.heitzer@rz.uni-regensburg.de> - 2025-04-11 08:04 +0000
      Re: -1//2 Patrick Rudin <taxi_bs@gmx.ch> - 2025-04-11 13:18 +0200

csiph-web