Module:Math: Difference between revisions
From Roses, Tulips, & Liberty
Content added Content deleted
m (1 revision imported) |
(typo fix) |
||
Line 532: | Line 532: | ||
return formatted_num |
return formatted_num |
||
end |
|||
--[[ |
|||
divide |
|||
Implements the division operator |
|||
Usage: |
|||
{{#invoke:Math | divide | x | y | round= | precision= }} |
|||
--]] |
|||
function wrap.divide(args) |
|||
local x = args[1] |
|||
local y = args[2] |
|||
local round = args.round |
|||
local precision = args.precision |
|||
if not yesno then |
|||
yesno = require('Module:Yesno') |
|||
end |
|||
return p._divide(x, y, yesno(round), precision) |
|||
end |
|||
function p._divide(x, y, round, precision) |
|||
if y == nil or y == "" then |
|||
return err("Empty divisor") |
|||
elseif not tonumber(y) then |
|||
if type(y) == 'string' and string.sub(y, 1, 1) == '<' then |
|||
return y |
|||
else |
|||
return err("Not a number: " .. y) |
|||
end |
|||
elseif x == nil or x == "" then |
|||
return err("Empty dividend") |
|||
elseif not tonumber(x) then |
|||
if type(x) == 'string' and string.sub(x, 1, 1) == '<' then |
|||
return x |
|||
else |
|||
return err("Not a number: " .. x) |
|||
end |
|||
else |
|||
local z = x / y |
|||
if round then |
|||
return p._round(z, 0) |
|||
elseif precision then |
|||
return p._round(z, precision) |
|||
else |
|||
return z |
|||
end |
|||
end |
|||
end |
end |
||