Long-Datentyp Überlauf
Ich versuche zu tun, einige prime factorisation mit meinem VBA-excel-und ich bin schlagen die Grenze des long
Daten Typ -
Runtime Error 6 Overflow
Gibt es eine Möglichkeit, dies zu umgehen, und trotzdem bleiben Sie in VBA? Ich bin mir bewusst, dass das selbstverständlich wäre die Nutzung von anderen geeigneten Programmiersprache.
Lance Lösung funktioniert in so weit, dass ich in der Lage bin, um die großen zahlen in die Variablen jetzt. Jedoch, wenn ich versuche, gelten die MOD
Funktion - bignumber MOD 2
zum Beispiel das immer noch fehlschlägt mit der Fehlermeldung
Runtime Error 6 Overflow
- Ich nehme an, Sie wissen, dass Sie nur Blick für Faktoren von bis zu WURZEL(n)
Du musst angemeldet sein, um einen Kommentar abzugeben.
MOD versucht zu konvertieren Sie Ihre DECIMAL-Typ zu LANGE vor dem Betrieb auf Sie. Möglicherweise müssen Sie schreiben Sie Ihre eigenen MOD-Funktion für den Typ "DECIMAL". Sie könnten versuchen, diese:
wo A & B sind in DEZIMAL-Untertyp von VARIANT-Variablen, und r könnte sein, dass die großen auch (je nach Bedarf), obwohl ich nur getestet, auf eine lange.
Können Sie die Decimal-Datentyp. Quick-Tipp von google: http://www.ozgrid.com/VBA/convert-to-decimal.htm
Dies ist mein Dezimalstellen.cls (VB6):
- und dies ist ein Test-Programm. Die Klasse wurde eingerichtet, so dass Sie nicht haben, um sich zu qualifizieren, mit .Dec() auf und lassen.
und Probe Gefahren werden
Hier ist mein "großer " multiplizieren" - routine für die Multiplikation beliebig große zahlen (z.B. 100 Zeichen lang). Es funktioniert durch die Aufteilung der eingabezahlen, die strings sind, in Stücke von 7 stellen (denn dann kann er Kreuz multiplizieren Sie Sie, und speichern Sie die Ergebnisse im Doppel).
zB bigmultiply("1934567803945969696433","4483838382211678") = 8674289372323895422678848864807544574