Jump to content

Module:Math: Difference between revisions

m 1 revision imported
Template>Ahecht
test string again after unformat before passing to expr for better performance
Line 589: Line 589:
]]
]]


function p._cleanNumber(number_string)
function p._cleanNumber(number_string, unformat)
if type(number_string) == 'number' then
if type(number_string) == 'number' then
-- We were passed a number, so we don't need to do any processing.
-- We were passed a number, so we don't need to do any processing.
Line 600: Line 600:
-- Attempt basic conversion
-- Attempt basic conversion
local number = tonumber(number_string)
local number = tonumber(number_string)
-- If failed, try unformatting the number_string
if unformat and number == nil then
-- Cannot use mw.language.getContentLanguage():parseFormattedNumber()
-- because, unlike {{formatnum:|R}}, it won't ignore operators (it
-- would return an error on "1,234+1,234" instead of "1234+1234")
number_string = mw.getCurrentFrame():callParserFunction("formatnum", {number_string, "R"})
number = tonumber(number_string)
end


-- If failed, attempt to evaluate input as an expression
-- If failed, attempt to evaluate input as an expression