Módulo:Números
Ir a la navegación
Ir a la búsqueda
Uso
Este módulo proporciona operaciones para convertir números a otros sistemas de numeración.
Funciones
Romano
Convierte un número entre 1 y 3999, normalmente un año o un siglo, en número romano. Sintaxis:
{{#Invoke:Números|Romano|<número>}}
- Ejemplos
{{#Invoke:Números|Romano|2014}}
→ Error de Lua: Error interno: El intérprete ha finalizado con la señal "-129".Siglo {{#Invoke:Números|Romano|15}}
→ Siglo Error de Lua: Error interno: El intérprete ha finalizado con la señal "-129".{{#Invoke:Números|Romano|4000}}
→ Error de Lua: Error interno: El intérprete ha finalizado con la señal "-129".{{#Invoke:Números|Romano|-100}}
→ Error de Lua: Error interno: El intérprete ha finalizado con la señal "-129".
Error de secuencia de órdenes: Error de Lua: Error interno: El intérprete ha finalizado con la señal "-129".
local z = {} function z.Romano(frame) local numero,argumentos,parent local NumerosRomanosMenores4000 = { {3000, "MMM"},{2000, "MM"},{1000, "M"}, {900, "CM"}, {800, "DCCC"}, {700, "DCC"}, {600, "DC"}, {500, "D"}, {400, "CD"}, {300, "CCC"}, {200, "CC"}, {100, "C"}, {90, "XC"},{80, "LXXX"},{70, "LXX"},{60, "LX"}, {50, "L"}, {40, "XL"}, {30, "XXX"},{20, "XX"},{10, "X"}, {9, "IX"}, {8, "VIII"},{7, "VII"},{6, "VI"}, {5, "V"}, {4, "IV"}, {3, "III"},{2, "II"}, {1, "I"} } if type(frame) == 'number' then -- Para poder llamarlo desde otro módulo fácilmente numero = frame else argumentos = frame.args; parent = frame:getParent(); numero = tonumber(argumentos[1] or parent.args[1]) --Número decimal que se quiere convertir a numeración romana end if numero == nil or numero == "" or numero >= 4000 then return "" end local resultado = '' for _, v in ipairs( NumerosRomanosMenores4000 ) do local valor, letras = unpack( v ) if numero >= valor then numero = numero - valor resultado = resultado .. letras end end return resultado end return z