Hi,
Weil beim Double aus naheliegenden Gründen der Modulo-Operator nicht implementiert sein _kann_
Solche Gründe liegen mir fern, sprich: was ist in PHP so speziell, das es nicht funktionieren _kann_?
Nichts. Es sind rein mathematische Gründe.
Die Modulis (Modulus ist doch o-Deklination, oder?) aus der Mathematik und der Informatik werden unterschiedlich benutzt.
Während es in der Mathematik eher um Kongruenz geht, geht's in der Informatik meist schlicht um den Rest.
123 mod 2 = 1
124 mod 3 = 1
1239 mod 29 = 21aber:
123.9 mod 2.9 = 2.1 (nicht definiert).
Hier kommt allerdings der Fakt in's Spiel, das bei den meisten Rechner-Architekturen nur Brüche benutzt werden können. (12/1, 1/3,2/77 aber z.B. nicht Pi, sqrt(2) o.ä.)
Brüche können jedoch mühelos erweitert werden.
123.9 mod 2.9 = 2.1
123,9 : 2,9 = q + 2,1
<=> (1239 : 29)/10 = (q + 21)/10
(1239 mod 29)/10 = 21/10
Deshalb kann es fmod(3) geben.
(Alles natürlich stark verkürzt. Bei Unklarheiten ruhig nachfragen)
so short
Christoph Zurnieden