Seite 2 von 2

Verfasst: 03.08.2006 18:47
von ts-soft
HoDam hat geschrieben:Mal eine Frage

Code: Alles auswählen

Procedure Mod(a,b)
  ProcedureReturn a-(a/b)*b
EndProcedure 

Da funktioniert aber nur weil das Ergebnis(a/b) ein gewisse Ungenauigkeit hat?.

Wa ist denn, wenn ich Floats habe? bzw, sehr große oder sehr kleine Zahlen haben?
http://de.wikipedia.org/wiki/Modulo_%28Rest%29
Modulo ist der Rest einer Ganzzahlendivision!

Verfasst: 03.08.2006 20:55
von Kaeru Gaman
laut wiki handelt es sich bei der klammer um eine Gaußklammer.
(und das is nix anderes als ne Int-funktion)

als Code muss es also so aussehen:

Code: Alles auswählen

a-Int(a/b)*b
damit es auch mit floats reibungslos klappt.

Verfasst: 03.08.2006 21:01
von ts-soft
>> Modulo ist der Rest einer Ganzzahlendivision!
Was wollt ihr mit Float??? Float sind keine Ganzzahlen, Mod von Floats gibt es
nicht.

Nachtrag:
Da a in der Formel bereits ein Long ist, ist das Int sowieso unnütz.

Verfasst: 03.08.2006 21:04
von Kaeru Gaman
>>> Modulo ist der Rest einer Ganzzahlendivision!

äh... ja... *handvordiestirnklatsch*

vergiss es schnell wieder...

in der mathematischen lösung ist es nötig, weil die teilung eben einen bruch liefert, keine ganzzahl.

als programm unnötig wegen des typ-cast.