On 2025-04-10 15:02, Peter Heitzer <peter.heit...@rz.uni-regensburg.de> wrote:
> Hermann Riemann <nospam...@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
_______________________________________________
python-de Mailingliste -- python-de@python.org
Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht an 
python-de-le...@python.org
https://mail.python.org/mailman3/lists/python-de.python.org/
Mitgliedsadresse: arch...@mail-archive.com

Reply via email to