# Module:New Taiwan dollar

Documentation for this module may be created at Module:New Taiwan dollar/doc

```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 '[[Taiwan#Money|NT\$]]' .. printvalue(m, M) .. ' (US\$' .. printvalue(USD(m), USD(M))  .. ')'
else
return '[[Taiwan#Money|New Taiwan dollar]]'
end
end

return p
```