21 lines
727 B
Lua
21 lines
727 B
Lua
--[[
|
|
Separates digits in a number into groups of three using the given
|
|
delimiter and ignoring anything after a decimal point
|
|
|
|
This function is not locale-aware, and will not be useful for
|
|
formatting numbers in languages that use inconsistent group sizes like
|
|
Indian numbering systems and myriad-based Chinese numbering systems
|
|
]]
|
|
local function addGroupDelimiters(numberStr, delimiter)
|
|
local delimiterReplace = string.format("%%1%s%%2", delimiter)
|
|
|
|
-- Repeat substitution until there are no more unbroken four-digit sequences
|
|
local substitutions
|
|
repeat
|
|
numberStr, substitutions = string.gsub(numberStr, "^(-?%d+)(%d%d%d)", delimiterReplace)
|
|
until substitutions == 0
|
|
|
|
return numberStr
|
|
end
|
|
|
|
return addGroupDelimiters |