Module:Rational: Difference between revisions

Plumtree (talk | contribs)
m \text{...} is wrapper is now added automatically
Plumtree (talk | contribs)
m Safer parsing
Line 1,424: Line 1,424:
-- removing <br> and <br/> tags
-- removing <br> and <br/> tags
unparsed = unparsed:gsub('<br/?>', '')
unparsed = unparsed:gsub('<br/?>', '')
-- length limit: very long strings are not converted into Lua numbers correctly
local max_length = 15
-- rational form
-- rational form
local sign, n, _m, m = unparsed:match('^%s*(%-?)%s*(%d+)%s*(/%s*(%d+))%s*$')
local sign, n, _m, m = unparsed:match('^%s*(%-?)%s*(%d+)%s*(/%s*(%d+))%s*$')
Line 1,434: Line 1,438:
else
else
m = 1
m = 1
if #n > max_length then
return nil
end
n = tonumber(n)
n = tonumber(n)
if #sign > 0 then
if #sign > 0 then
Line 1,440: Line 1,447:
end
end
else
else
if #n > max_length then
return nil
end
n = tonumber(n)
n = tonumber(n)
if #m > max_length then
return nil
end
m = tonumber(m)
m = tonumber(m)
if #sign > 0 then
if #sign > 0 then