Modul:String: Unterschied zwischen den Versionen
keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| Zeile 468: | Zeile 468: | ||
return mw.ustring.gsub( pattern_str, "([%(%)%.%%%+%-%*%?%[%^%$%]])", "%%%1" ); | return mw.ustring.gsub( pattern_str, "([%(%)%.%%%+%-%*%?%[%^%$%]])", "%%%1" ); | ||
end | end | ||
function str.format_num(amount, decimal, prefix, neg_prefix) | |||
local str_amount, formatted, famount, remain | |||
decimal = decimal or 2 -- default 2 decimal places | |||
neg_prefix = neg_prefix or "-" -- default negative sign | |||
famount = math.abs(round(amount,decimal)) | |||
famount = math.floor(famount) | |||
remain = round(math.abs(amount) - famount, decimal) | |||
-- comma to separate the thousands | |||
formatted = comma_value(famount) | |||
-- attach the decimal portion | |||
if (decimal > 0) then | |||
remain = string.sub(tostring(remain),3) | |||
formatted = formatted .. "." .. remain .. | |||
string.rep("0", decimal - string.len(remain)) | |||
end | |||
-- attach prefix string e.g '$' | |||
formatted = (prefix or "") .. formatted | |||
-- if value is negative then format accordingly | |||
if (amount<0) then | |||
if (neg_prefix=="()") then | |||
formatted = "("..formatted ..")" | |||
else | |||
formatted = neg_prefix .. formatted | |||
end | |||
end | |||
return formatted | |||
end | |||
return str | return str | ||