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