Module:Spellnum per MOS
Appearance
{{Module rating }}
Usage
Implements Template:Spellnum per MOS.
{{#invoke:Spellnum per MOS|main|number to format|if second arg equals 1, prefer numerals}}
For use by other Lua modules:
local spellnum = require('Module:Spellnum per MOS').spellnum
spellnum{ 11 } -- returns 'eleven'
local p = {}
function p.main(frame)
local numeral = tonumber(frame.args[1])
local force_num = frame.args[2] -- Force numeral for intermediate cases
local spell = 0
if numeral<0 or math.fmod(numeral,1)~=0 then
elseif numeral<10 then
spell = 1
elseif numeral>=10 and (force_num~='forcenum' and force_num~='1') then
local spelled = frame:expandTemplate{title='spellnum',args={numeral}}
if not mw.ustring.find(spelled,'%a+[ %-]%a+[ %-]%a+') then
spell = 1
end
end
local number
if spell==1 then
number = frame:expandTemplate{ title = 'spellnum', args = { numeral } }
else
number = numeral
end
return number
end
return p