Roblox number suffixes: K, M, B, T, Qa, Qi … Vg
The short-scale suffixes most Roblox simulators use, each one 1,000 times the last, with a converter in both directions. Conversion matches the free roblox-number-format Luau module exactly (checked on 23,000+ inputs).
All suffixes
The "1000K" bug
Formatting 999,950 with one decimal as 999950 / 1000 → 999.95 → "1000.0K" is the most common display bug in simulators. Round first; if the rounded value reaches 1000, move up one suffix ("1.0M", or "1M" with trailing zeros dropped, as this converter and the Luau module do). Try 999950 with 1 decimal above.
Precision: where coin counts stop being exact
Luau numbers are doubles. Whole numbers are exact only up to 253 = 9,007,199,254,740,992 (about 9 Qa). Above that, adding 1 coin may do nothing, and two different counts can display the same. Doubles reach about 1.8e308, so suffixes still display fine far past Vg (1e63), but if your economy's real values pass ~9 Qa, store a mantissa/exponent pair (or a log value) instead of a plain number. More on designing the curve itself: simulator pacing calculator.
Luau
local NumberFormat = require(path.to.NumberFormat) -- free, MIT: github.com/2328312928-commits/roblox-number-format NumberFormat.abbreviate(1234) --> "1.23K" NumberFormat.abbreviate(999950, 1) --> "1M" NumberFormat.abbreviate(2.5e12) --> "2.5T"