Module:Math: Difference between revisions

no edit summary
en>Dragons flight
(adds expression checking, more error messages, and better handling of some precision format cases, and precision flooding check)
en>Dragons flight
No edit summary
Line 4:
-- Clean numeric value
function z._cleanNumber( frame, number_string )
if number_string == nil or number_string:len() == 0 then
return nil, nil;
end
-- Attempt basic conversion
local number = tonumber( number_string )
-- If failed, attempt to evaluate input as an expression
if number == nil then
local attempt = frame:preprocess( '{{#expr: ' .. number_string .. '}}' );
attempt = tonumber( attempt );
Line 101 ⟶ 105:
-- Finds maximum argument
function z.max( frame )
iflocal frame.args[1] == nil thenframe.args;
return ''
if args[1] == nil then
local parent = frame:getParent();
args = parent.args;
end
local max_value = nil;
local i = 1;
while frame.args[i] ~= nil do
local val = z._cleanNumber( frame, frame.args[i] );
if val ~= nil then
if max_value == nil or val > max_value then
Line 122 ⟶ 129:
-- Finds minimum argument
function z.min( frame )
iflocal frame.args[1] == nil thenframe.args;
return ''
if args[1] == nil then
local parent = frame:getParent();
args = parent.args;
end
local min_value = nil;
Anonymous user