Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Gruenkohl am 26.10.05 - 16:56:23
-
Hallo zusammen,
ich bekomme bei folgender Rechnung eine "Overflow" angezeigt:
xy = 40867559636992 mod 187
Die Variable xy ist als Currency deklariert.
Auch wenn ich den Wert in einen String schreiben möchte bekomme ich den Fehler.
Kann Notes so große Zahlen nicht mit "mod" berechnen? ???
Danke und Gruss
Andreas
-
Nur eine Vermutung: Der data type von Modulo ist Long. Es könnte sein, dass der für Zwischenschritte verwendet wird - und dabei wird er von Deiner Zahl "gesprengt".
Ich denke, man sollte (in allen Programmiersprachen) immer den "kleinsten gemeinsamen Nenner" (hier besser: Das schwächste Glied der Rechen-Kette) berücksichtigen.
Bernhard
-
Currency? 40.867.559.636.992 ?
40 Billionen? Ist das irgendeine Anwendung zur Berechnung des deutschen Schuldenberges oder was ;D
Welche Währung soll das sein? Bananendollar? ;)
-
Gibt coole Wechselkurse: 1 Pfund Sterling = 1 Pfund Bananendollar.
Bernhard ;D
-
Ansonsten lässt sich modulo ja auch einfach selbst entwickeln
a=40000000000
d=187
while a>d
a=a-d
wend
Dabei sollte selbst bei einem Fliesskommazahlentyp ein richtiger Wert herauskommen.
BTW: 187?
187 Leute wollen Fort Knox ausrauben in dem 40.000.000.000 $ in Gold liegen, nur ganze Dollar verteilen und von dem Rest eine Party schmeissen? Und daher musst Du jetzt den Modulo davon berechnen, weil Du für den Caterer programmierst? ;)
-
die Formelsprache ist da gefälliger.
xy = @Modulo(40867559636992; 187)
dies könnte jetzt mit Execute im Script ausgeführt werden.
-
Wobei ich jetzt nicht weiss, ob die Formelsprache besser mit so grossen Werten umgehen kann.
-
Moin, moin,
natürlich handelt es sich um keine Währung. Und ich wollte auch nicht den deutschen Schuldenberg berechnen. ;D
Wollte mal das RSA-Verfahren testen.
Schau dann mal ob ich es anders gelöst bekomme.
Danke und Gruss
Andreas
-
Also für sowas ist natürlich sowohl Lotus Script als auch Formula gänzlich ungeeignet.
Überhaupt für eigentlich jegliche halbkomplexe Berechnung - weil die Performance dafür zu niedrig und die Zahlenspeicher zu klein sind.
Aber für den Alltag spielt das ja auch keine Rolle.