Für den Umgang mit großen Zahlen würde ich mir das ansehen, was ich für ein gutes Beispiel wie Tower of Hero halte . Obere linke Ecke:
(Quelle: mzstatic.com )
Ohne ins Spiel zu kommen, ist der Umgang mit Zahlen relativ einfach: Sie sehen zwei Eimer mit Zahlen. Wenn Sie im Turm höher steigen und mehr "Gold" verdienen, repräsentieren die beiden Eimer einfach größere Zahlen.
120
120M320K - 120 Million
120B631M - 120 Billion
120T134B - 120 Trillion
Sobald das Spiel vorbei ist, bewegt es sich in a, b, c ... z, aa, ab, ...
56aa608z
Auf diese Weise wissen Sie immer noch, wie viel Gold Sie "verdient" haben, ohne das Spiel im Detail zu ruinieren.
Interessieren Sie sich wirklich für Millions, wenn Ihre Zahl über Trillions liegt?
Bleibt die Zahl in Int, Big Int, Float, Double, Decimal, ...? Benutzerdefiniertes Array? Wenn du mit Zahlen so "verschwommen" umgehst, denke ich nicht, dass es wichtig ist ...
Alles, was wahrscheinlich wichtig ist, sind die wichtigsten Teile - in diesem Fall die ersten 6 ... Danach MÖGLICHERWEISE die nächsten 3 oder 6 - da das Verdienen von ein paar hundert Kilometern in Millionen übergehen kann - aber es gibt einen Punkt, an dem das Verdienen beginnt Ein paar Hundert K werden Sie nicht beeinträchtigen, wenn Sie T drücken, geschweige denn aa und mehr.
Ihre Laufleistung variiert (je nachdem, was Sie wollen / brauchen) ... Ich dachte nur, ich würde meine 2c auf das setzen, was ich für ein gutes / einfaches Beispiel halte.
Bearbeiten:
Weitere Gedanken darüber, wie ich das Nummerierungssystem implementieren würde: Ich hätte eine Nummer mit 3 signifikanten Teilen: XXXX.YYY (...) xZZZ.
X is the most significant digits,
Y trailing
Z the multiplier (multiple of 3).
120.365x1 wäre also 120k365 ... 120.365x2 wäre 120M365K ... usw. Schlagen Sie die 4 führenden (1200.365x2) und drehen Sie dann einfach die Zahlen 1.200365 (...) x3. Bam. Sie haben 1B200M.
XY würde leicht in eine Dezimalzahl oder ein Float passen ... mit Z daneben als int / unsigned int.
Mit einem Float können Sie eine beträchtliche, aber zunehmend unwichtige Anzahl von Ziffern nach dem Punkt beibehalten.
Z würde den leicht verständlichen Zahlenblock darstellen:
K = 1
M = 2
B = 3
T = 4
a = 5
...
z = 31 (I may be off on this)
aa = 32
...
az = 58
ba = 59
...
...