16 lines
367 B
Lua
16 lines
367 B
Lua
local function escape_pattern(s)
|
|
return (s:gsub("(%W)", "%%%1"))
|
|
end
|
|
|
|
function Thousands(n, sep)
|
|
sep = sep or "."
|
|
local s = tostring(n)
|
|
local sign, int, frac = s:match("^([%-]?)(%d+)(%.?%d*)$")
|
|
|
|
int = int:reverse():gsub("(%d%d%d)", "%1" .. sep):reverse()
|
|
|
|
local sep_esc = escape_pattern(sep)
|
|
int = int:gsub("^" .. sep_esc, "")
|
|
|
|
return sign .. int .. frac
|
|
end
|