Pour gérer de grands nombres, je regarderais ce que je pense être un bon exemple comme Tower of Hero . Coin supérieur gauche:
(source: mzstatic.com )
Sans entrer dans le gameplay, la façon dont il gère les nombres est relativement simple: vous voyez deux groupes de nombres. Lorsque vous montez plus haut dans la tour et que vous faites plus "d'or", les deux seaux représentent simplement de plus grands nombres.
120
120M320K - 120 Million
120B631M - 120 Billion
120T134B - 120 Trillion
Une fois que le jeu passe T, il se déplace en a, b, c ... z, aa, ab, ...
56aa608z
En procédant de cette façon, cela vous permet toujours de savoir combien d'or vous avez "gagné" ... tout en n'embourbant pas le jeu dans les détails.
Vous souciez-vous vraiment des millions quand votre nombre est passé des milliards?
Conserve-t-il le nombre en Int, Big Int, Float, Double, Decimal, ...? Tableau personnalisé? Lorsque vous gérez des nombres de manière si "floue", je ne pense pas que cela soit important ...
Tout ce qui compte probablement, ce sont les parties les plus importantes - dans ce cas, les 6 premiers ... Après cela, PEUT-ÊTRE les 3 ou 6 suivants - puisque gagner quelques centaines de K peut se transformer en millions - mais il y a un point où gagner quelques centaines de K ne vous affecteront pas lorsque vous frapperez T ... encore moins aa et au-delà.
Votre kilométrage variera (en fonction de ce que vous voulez / besoin) ... Je pensais simplement que je mettrais mon 2c sur ce que je pense être un bon / simple exemple.
Modifier:
Réflexions supplémentaires sur la façon dont j'implémenterais le système de numérotation: j'aurais un nombre avec 3 parties significatives: XXXX.YYY (...) xZZZ.
X is the most significant digits,
Y trailing
Z the multiplier (multiple of 3).
Donc 120.365x1 serait 120k365 ... 120.365x2 serait 120M365K ... etc. Appuyez sur le 4 en tête (1200.365x2), puis faites simplement pivoter les nombres 1.200365 (...) x3. Bam. Vous avez 1B200M.
XY s'intégrerait facilement dans une décimale ou un flottant ... avec Z assis à côté comme un int / non signé.
Avec un flotteur, vous seriez en mesure de conserver un nombre important - mais de plus en plus insignifiant - de chiffres après le point.
Z représenterait facilement un bloc de nombres facilement compréhensible:
K = 1
M = 2
B = 3
T = 4
a = 5
...
z = 31 (I may be off on this)
aa = 32
...
az = 58
ba = 59
...
...