Warum der Logarithmus in PHP und Lua nicht monoton ist

Log is non-monotonic in PHP and Lua

Ich untersuche ein seltsames Verhalten bei der Berechnung von Logarithmen in PHP und Lua. Obwohl die Mathematik klar sagt, dass ein größerer Basiswert ein kleineres Ergebnis liefern sollte, kippt das Ergebnis in diesen Sprachen bei bestimmten Werten. Der Grund liegt in einer inkonsistenten Mischung aus verschiedenen Implementierungsmethoden für spezielle Basen wie 10 und 2, was zu einer Diskontinuität führt, die in anderen Sprachen wie Rust nicht auftritt.

IEEE-754 ist unglaublich robust, aber nachlässige Implementierungsentscheidungen hier und dort verunreinigen es so sehr, dass Menschen fast jeden Fehler auf die inhärente Ungenauigkeit zurückführen.

Mehr von diesem Tag

2026-07-29