Modül:DönüştürSayısal
-- Sayıların farklı temsilleri arasında dönüşüm yapmak için kullanılan modül
local ones_position = { [0] = 'sıfır', [1] = 'bir', [2] = 'iki', [3] = 'üç', [4] = 'dört', [5] = 'beş', [6] = 'altı', [7] = 'yedi', [8] = 'sekiz', [9] = 'dokuz', [10] = 'on', [11] = 'on bir', [12] = 'on iki', [13] = 'on üç', [14] = 'on dört', [15] = 'on beş', [16] = 'on altı', [17] = 'on yedi', [18] = 'on sekiz', [19] = 'on dokuz'
}
local ones_position_ord = { [0] = 'sıfırıncı', [1] = 'birinci', [2] = 'ikinci', [3] = 'üçüncü', [4] = 'dördüncü', [5] = 'beşinci', [6] = 'altıncı', [7] = 'yedinci', [8] = 'sekizinci', [9] = 'dokuzuncu', [10] = 'onuncu', [11] = 'onbirinci', [12] = 'onikinci', [13] = 'onüçüncü', [14] = 'ondördüncü', [15] = 'onbeşinci', [16] = 'onaltıncı', [17] = 'onyedinci', [18] = 'onsekizinci', [19] = 'ondokuzuncu'
}
local ones_position_plural = { [0] = 'sıfırlar', [1] = 'birler', [2] = 'ikiler', [3] = 'üçler', [4] = 'dörtler', [5] = 'beşler', [6] = 'altılar', [7] = 'yediler', [8] = 'sekizler', [9] = 'dokuzlar', [10] = 'onlar', [11] = 'onbirler', [12] = 'onikiler', [13] = 'onüçler', [14] = 'ondörtler', [15] = 'onbeşler', [16] = 'onaltılar', [17] = 'onyediler', [18] = 'onsekizler', [19] = 'ondokuzlar'
}
local tens_position = { [2] = 'yirmi', [3] = 'otuz', [4] = 'kırk', [5] = 'elli', [6] = 'altmış', [7] = 'yetmiş', [8] = 'seksen', [9] = 'doksan'
}
local tens_position_ord = { [2] = 'yirminci', [3] = 'otuzuncu', [4] = 'kırkıncı', [5] = 'ellinci', [6] = 'altmışıncı', [7] = 'yetmişinci', [8] = 'sekseninci', [9] = 'doksanıncı'
}
local tens_position_plural = { [2] = 'yirmiler', [3] = 'otuzlar', [4] = 'kırklar', [5] = 'elliler', [6] = 'altmışlar', [7] = 'yetmişler', [8] = 'seksenler', [9] = 'doksanlar'
}
local groups = { [1] = 'bin', [2] = 'milyon', [3] = 'milyar', [4] = 'trilyon', [5] = 'katrilyon', [6] = 'kentilyon', [7] = 'sekstilyon', [8] = 'septilyon', [9] = 'oktilyon', [10] = 'nonilyon', [11] = 'desilyon', [12] = 'undesilyon', [13] = 'duodesilyon', [14] = 'tredesilyon', [15] = 'quattuordecilyon', [16] = 'quindecilyon', [17] = 'sexdecilyon', [18] = 'septendecilyon', [19] = 'octodecilyon', [20] = 'novemdecilyon', [21] = 'vigintilyon', [22] = 'unvigintilyon', [23] = 'duovigintilyon', [24] = 'tresvigintilyon', [25] = 'quattuorvigintilyon', [26] = 'quinquavigintilyon', [27] = 'sesvigintilyon', [28] = 'septemvigintilyon', [29] = 'octovigintilyon', [30] = 'novemvigintilyon', [31] = 'trigintilyon', [32] = 'untrigintilyon', [33] = 'duotrigintilyon', [34] = 'trestrigintilyon', [35] = 'quattuortrigintilyon', [36] = 'quinquatrigintilyon', [37] = 'sestrigintilyon', [38] = 'septentrigintilyon', [39] = 'octotrigintilyon', [40] = 'noventrigintilyon', [41] = 'quadragintilyon', [51] = 'quinquagintilyon', [61] = 'sexagintilyon', [71] = 'septuagintilyon', [81] = 'octogintilyon', [91] = 'nonagintilyon', [101] = 'centilyon', [102] = 'uncentilyon', [103] = 'duocentilyon', [104] = 'trescentilyon', [111] = 'decicentilyon', [112] = 'undecicentilyon', [121] = 'viginticentilyon', [122] = 'unviginticentilyon', [131] = 'trigintacentilyon', [141] = 'quadragintacentilyon', [151] = 'quinquagintacentilyon', [161] = 'sexagintacentilyon', [171] = 'septuagintacentilyon', [181] = 'octogintacentilyon', [191] = 'nonagintacentilyon', [201] = 'ducentilyon', [301] = 'trecentilyon', [401] = 'quadringentilyon', [501] = 'quingentilyon', [601] = 'sescentilyon', [701] = 'septingentilyon', [801] = 'octingentilyon', [901] = 'nongentilyon', [1001] = 'millinilyon',
}
local roman_numerals = { I = 1, V = 5, X = 10, L = 50, C = 100, D = 500, M = 1000
}
-- Converts a given valid roman numeral (and some invalid roman numerals) to a number. Returns -1, errorstring on error
local function roman_to_numeral(roman) if type(roman) ~= "string" then return -1, "roman numeral not a string" end local rev = roman:reverse() local raising = true local last = 0 local result = 0 for i = 1, #rev do local c = rev:sub(i, i) local next = roman_numerals[c] if next == nil then return -1, "roman numeral contains illegal character ". c end if next > last then result = result + next raising = true elseif next < last then result = result - next raising = false elseif raising then result = result + next else result = result - next end last = next end return result
end
-- Converts a given integer between 0 and 100 to English text (e.