Để xử lý số lượng lớn, tôi nhìn vào những gì tôi nghĩ là một ví dụ tốt như Tháp anh hùng . Góc trên bên trái:
(nguồn: mzstatic.com )
Không cần vào trò chơi, cách nó xử lý các con số tương đối đơn giản: Bạn thấy hai thùng số. Khi bạn lên cao hơn trong tòa tháp và kiếm được nhiều "vàng" hơn, hai thùng chỉ đơn giản là đại diện cho số lượng lớn hơn.
120
120M320K - 120 Million
120B631M - 120 Billion
120T134B - 120 Trillion
Khi trò chơi vượt qua T, nó chuyển sang a, b, c ... z, aa, ab, ...
56aa608z
Làm theo cách này, nó vẫn cho bạn biết bạn đã kiếm được bao nhiêu vàng ... trong khi không làm hỏng trò chơi một cách chi tiết.
Bạn có thực sự quan tâm đến hàng triệu khi số của bạn đã qua Trillions?
Liệu nó có giữ số trong Int, Big Int, Float, Double, Decimal, ...? Mảng tùy chỉnh? Khi bạn xử lý các con số theo cách "mờ" như vậy, tôi không nghĩ nó quan trọng ...
Tất cả những gì có khả năng là vấn đề quan trọng nhất - trong trường hợp này là 6 phần đầu ... Sau đó, MAYBE 3 hoặc 6 tiếp theo - kể từ khi kiếm được vài trăm K có thể chuyển sang Hàng triệu - nhưng có một điểm kiếm được Một vài trăm K sẽ không ảnh hưởng đến bạn khi bạn nhấn T ... ít hơn nhiều aa và hơn thế nữa.
Số dặm của bạn sẽ thay đổi (tùy thuộc vào những gì bạn muốn / cần) ... Chỉ cần nghĩ rằng tôi đã đưa ra 2c của mình về những gì tôi nghĩ là một ví dụ tốt / đơn giản.
Chỉnh sửa:
Suy nghĩ thêm về cách tôi sẽ triển khai hệ thống đánh số: Tôi có một số có 3 phần quan trọng: XXXX.YYY (...) xZZZ.
X is the most significant digits,
Y trailing
Z the multiplier (multiple of 3).
Vì vậy, 120.365x1 sẽ là 120k365 ... 120.365x2 sẽ là 120M365K ... vv Nhấn vào 4 số dẫn đầu (1200.365x2), sau đó chỉ cần xoay các số 1.200365 (...) x3. B Bam. Bạn có 1B200M.
XY sẽ dễ dàng phù hợp với số thập phân hoặc số nổi ... với Z ngồi cạnh nó dưới dạng int / unsign int.
Với một số float, bạn có thể giữ một số lượng lớn - nhưng ngày càng không quan trọng - số chữ số sau dấu chấm.
Z sẽ dễ dàng đại diện cho một khối số dễ hiểu:
K = 1
M = 2
B = 3
T = 4
a = 5
...
z = 31 (I may be off on this)
aa = 32
...
az = 58
ba = 59
...
...