Per la gestione di grandi numeri, darei un'occhiata a quello che penso sia un buon esempio come Tower of Hero . Angolo in alto a sinistra:
(fonte: mzstatic.com )
Senza entrare nel gameplay, il modo in cui gestisce i numeri è relativamente semplice: vedi due secchi di numeri. Man mano che sali nella torre e guadagni più "oro", i due secchi rappresentano semplicemente numeri più grandi.
120
120M320K - 120 Million
120B631M - 120 Billion
120T134B - 120 Trillion
Una volta che il gioco passa T, si sposta in a, b, c ... z, aa, ab, ...
56aa608z
In questo modo, ti consente ancora di sapere quanto oro hai "guadagnato" ... pur non impantanando il gioco nei dettagli.
Ti importa davvero di milioni quando il tuo numero è passato trilioni?
Mantiene il numero in Int, Big Int, Float, Double, Decimal, ...? Matrice personalizzata? Quando gestisci i numeri in un modo così "sfocato", non penso che importi ...
Tutto ciò che probabilmente conta sono le parti più significative - in questo caso, le prime 6 ... Dopodiché, FORSE i successivi 3 o 6 - poiché guadagnare qualche centinaio di K può passare a milioni - ma c'è un punto in cui guadagnare alcune centinaia di K non ti influenzeranno quando premi T ... molto meno aa e oltre.
Il tuo chilometraggio varierà (a seconda di ciò che vuoi / di cui hai bisogno) ... Ho pensato di mettere il mio 2c su quello che penso sia un buon / semplice esempio.
Modificare:
Ulteriori riflessioni su come implementare il sistema di numerazione: avrei un numero con 3 parti significative: XXXX.YYY (...) xZZZ.
X is the most significant digits,
Y trailing
Z the multiplier (multiple of 3).
Quindi 120.365x1 sarebbe 120k365 ... 120.365x2 sarebbe 120M365K ... ecc. Premi il 4 iniziale (1200.365x2), quindi ruota solo i numeri 1.200365 (...) x3. Bam. Hai 1B200M.
XY si adatterebbe facilmente in un decimale o Float ... con Z seduto accanto come int / unsigned int.
Con un float, sarai in grado di mantenere un numero considerevole, ma sempre meno importante, di cifre dopo il punto.
Z rappresenterebbe facilmente un blocco di numeri facilmente comprensibile:
K = 1
M = 2
B = 3
T = 4
a = 5
...
z = 31 (I may be off on this)
aa = 32
...
az = 58
ba = 59
...
...