Hallo zusammen,
Du kannst den Dividenden aber ruhig als Double anlegen. Es funktioniert trotzdem nicht.
Und wenn man beide nach Double ändert? Immerhin lauten die entsprechenden Funktionen in den meisten Sprachen ähnlich Cs "double fmod(double x, double y)" (In math.h)
(Die früheste Implementaton, die ich auf die Schnelle gefunden habe ist von SUN von 1993. Würde mich aber arg wundern, wenn es nicht schon 1983 eine gegeben hätte)
Ist auch im POSIX Standard:
http://www.opengroup.org/onlinepubs/009695399/functions/fmod.html
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_?
und daher die Double-Zahl vorher in einen Integer verwandelt wird, bevor Modulo angewendet wird.
Es ist schon ein klein wenig komplizierter, aber prinzipiell hast Du durchaus Recht. Aber was hat das damit zu tun, das es in PHP nicht klappt?
Nein, das ist, wenn schon kein direkter Bug, so doch zumindest eine recht merkwürdige Auffassung von Arithmetik.
Da scheint ein echtes Problem drinzustecken.
Double speichert zwar sehr große Zahlen, allerdings nicht mit beliebiger Präzision. 100000000000000000000000000 ist in Double noch darstellbar, ist aber von 100000000000000000000000001 nicht unterscheidbar.
Also die Werte von double hättest Du durchaus aber mal nachrechnen lassen können! ;-)
so short
Christoph Zurnieden