Module:Number
From ARC Raiders Wiki
More actions
Formats numbers with thousand separators. Non-numeric input is returned unchanged, so the module is safe to use on mixed content (e.g., empty text, labels passed through in error).
Examples
| Code | Result |
|---|---|
| {{#invoke:Number|main|value=1500}} | 1,500 |
| {{#invoke:Number|main|value=1500.50}} | 1,500.50 |
| {{#invoke:Number|main|value=-1500}} | −1,500 |
| {{#invoke:Number|main|value=abc}} | abc |
The value parameter is required (named). Leading and trailing whitespace is trimmed.
Notes
- Trailing zeros in the decimal portion are preserved: 1500.50 formats as 1,500.50, not 1,500.5.
- Input like 1500. (trailing dot, no digits) is treated as invalid and returned unchanged.
-- Number formatting helpers for templates and other modules.
-- See Module:Number/doc for usage and behavior notes.
local Number = {}
--- Trim whitespace and convert nil to an empty string.
local function normalizeInput(value)
if value == nil then return "" end
return mw.text.trim(tostring(value))
end
--- Format a number with the wiki's locale-correct grouping separator.
--- Trailing zeros, leading zeros, and full input precision are preserved.
--- Non-numeric input is returned unchanged.
function Number.format(value)
local str = normalizeInput(value)
if not tonumber(str) then return str end
local frame = mw.getCurrentFrame()
return frame:callParserFunction('formatnum', str)
end
--- Entry point: {{#invoke:Number|main|value=1500}}
function Number.main(frame)
return Number.format(frame.args.value)
end
return Number