Module:New Taiwan dollar

local p = {}

local function printvalue(a, b) -- Used to create a range separated by a dash if b == nil then return a	else return a .. '–' .. b	end end

local function round(x) -- Returns the input value rounded. Rounds to 3 decimal points if output is smaller than 0.1. if math.floor(x * 10^2 + 0.5) / 10^2 >= 0.1 then return math.floor(x * 10^2 + 0.5) / 10^2 else return math.floor(x * 10^3 + 0.5) / 10^3 end end

local function USD(a) -- Used to convert NT$ to USD local r = 29.44 -- Exchange rate (NT$ per $1 USD) if a == nil then return nil else return round(a/r, 2) end end

function p.NT(frame) -- Output local pf = frame:getParent.args local f = frame.args local m = f[1] or pf[1] -- First parameter shortened as 'm'	local M = f[2] or pf[2] -- Second as 'M'	local l = f.l or pf.l -- Link local c = f.c or pf.c -- Convert if m ~= nil and l ~= 'y' then return 'NT$' .. printvalue(m, M) .. ' (US$' .. printvalue(USD(m), USD(M)) .. ')' elseif m ~= nil then return 'NT$' .. printvalue(m, M) .. ' (US$' .. printvalue(USD(m), USD(M)) .. ')' else return 'New Taiwan dollar' end end

return p