モジュール:サンドボックス/とうねこ/漢数字

モジュールの解説[作成]
local p = {}

function p.kansuuji( frame )
	n = tonumber(frame.args[1])
    if n >= 1 then
        return keta16(n)
    elseif n  <= -1 then
        return  "マイナス" + keta16(math.abs(n))
    else
        return "〇"
    end

end

function p.keta16( frame )
    b = tonumber(frame.args[1])
    c = 0
    result = ""
    d = {"万", "億", "兆"}
    while b > 1 do
        c = c + 1
        if b % 10000 > 0 then
            if c > 1 then
                result = d[c - 1] .. result
            result = keta4(b % 10000) .. result
            end
        b = math.floor(b / 10000)
        end
    end
    return result
end
function p.keta4( frame )
    b = tonumber(frame.args[1])
    c = 0
    result = ""
    d = {"十", "百", "千"}
    while b > 0 do
        c = c + 1
        if  b % 10 > 0 then
            if c > 1 then
                result = d[c - 1] .. result
            end
            if b % 10 > 1 or b == 0 then
                result = number(b % 10 - 1) .. result
            end
        b = math.floor(b / 10)
        end
    end
    return result
end
function p.number(frame)
    a = { "一", "ニ", "三", "四", "五", "六", "七", "八", "九" }
    return a[tonumber(frame.args[1])]
end
return p