در حال ویرایش پودمان:Math
این ویرایش را میتوان خنثی کرد. لطفاً تفاوت زیر را بررسی کنید تا تأیید کنید که این چیزی است که میخواهید انجام دهید، سپس تغییرات زیر را ذخیره کنید تا خنثیسازی ویرایش را به پایان ببرید.
نسخهٔ فعلی | متن شما | ||
خط ۵۲: | خط ۵۲: | ||
-- Use a function on all supplied arguments, and return the result. The function must accept two numbers as parameters, | -- Use a function on all supplied arguments, and return the result. The function must accept two numbers as parameters, | ||
-- and must return a number as an output. This number is then supplied as input to the next function call. | -- and must return a number as an output. This number is then supplied as input to the next function call. | ||
local vals = makeArgArray(...) | local vals = makeArgArray(...) | ||
local count = #vals -- The number of valid arguments | local count = #vals -- The number of valid arguments | ||
if count == 0 then return | if count == 0 then return | ||
-- Exit if we have no valid args, otherwise removing the first arg would cause an error. | -- Exit if we have no valid args, otherwise removing the first arg would cause an error. | ||
nil, 0 | nil, 0 | ||
end | end | ||
local ret = table.remove(vals, 1) | local ret = table.remove(vals, 1) | ||
for _, val in ipairs(vals) do | for _, val in ipairs(vals) do | ||
خط ۱۲۰: | خط ۱۲۰: | ||
else | else | ||
return p._order(input_number) | return p._order(input_number) | ||
end | end | ||
end | end | ||
خط ۱۵۴: | خط ۱۵۴: | ||
return math.log10(denom_value); | return math.log10(denom_value); | ||
end | end | ||
end | end | ||
end | end | ||
end | end | ||
input_number, input_string = p._cleanNumber(input_string); | input_number, input_string = p._cleanNumber(input_string); | ||
خط ۱۶۳: | خط ۱۶۳: | ||
else | else | ||
return p._precision(input_string) | return p._precision(input_string) | ||
end | end | ||
end | end | ||
خط ۱۸۰: | خط ۱۸۰: | ||
x = string.sub(x, 1, exponent_pos - 1) | x = string.sub(x, 1, exponent_pos - 1) | ||
result = result - tonumber(exponent) | result = result - tonumber(exponent) | ||
end | end | ||
if decimal ~= nil then | if decimal ~= nil then | ||
خط ۲۳۸: | خط ۲۳۸: | ||
function p._median(...) | function p._median(...) | ||
local vals = makeArgArray(...) | local vals = makeArgArray(...) | ||
local count = #vals | local count = #vals | ||
table.sort(vals) | table.sort(vals) | ||
if count == 0 then | if count == 0 then | ||
return 0 | return 0 | ||
end | end | ||
if p._mod(count, 2) == 0 then | if p._mod(count, 2) == 0 then | ||
return (vals[count/2] + vals[count/2+1])/2 | return (vals[count/2] + vals[count/2+1])/2 | ||
خط ۲۵۴: | خط ۲۵۴: | ||
--[[ | --[[ | ||
min | min | ||
Finds the minimum argument | Finds the minimum argument | ||
خط ۲۷۹: | خط ۲۷۹: | ||
--[[ | --[[ | ||
sum | sum | ||
Finds the sum | Finds the sum | ||
خط ۳۰۵: | خط ۳۰۵: | ||
--[[ | --[[ | ||
average | average | ||
Finds the average | Finds the average | ||
خط ۳۴۷: | خط ۳۴۷: | ||
else | else | ||
return p._round(value, precision) | return p._round(value, precision) | ||
end | end | ||
end | end | ||
خط ۳۸۷: | خط ۳۸۷: | ||
else | else | ||
return p._mod(x, y) | return p._mod(x, y) | ||
end | end | ||
end | end | ||
خط ۴۳۱: | خط ۴۳۱: | ||
precision_format | precision_format | ||
Rounds a number to the specified precision and formats according to rules | Rounds a number to the specified precision and formats according to rules | ||
originally used for {{template:Rnd}}. Output is a string. | originally used for {{template:Rnd}}. Output is a string. | ||
خط ۴۶۳: | خط ۴۶۳: | ||
-- some circumstances because the terminal digits will be inaccurately reported. | -- some circumstances because the terminal digits will be inaccurately reported. | ||
if order + precision >= 14 then | if order + precision >= 14 then | ||
orig_precision = p._precision(value_string) | |||
precision = 13 - order; | if order + orig_precision >= 14 then | ||
end | precision = 13 - order; | ||
end | |||
end | end | ||
خط ۴۷۲: | خط ۴۷۳: | ||
value = p._round(value, precision) | value = p._round(value, precision) | ||
current_precision = p._precision(value) | current_precision = p._precision(value) | ||
end | end | ||
local formatted_num = lang:formatNum(math.abs(value)) | local formatted_num = lang:formatNum(math.abs(value)) | ||
خط ۴۸۲: | خط ۴۸۳: | ||
else | else | ||
sign = '' | sign = '' | ||
end | end | ||
-- Handle cases requiring scientific notation | -- Handle cases requiring scientific notation | ||
خط ۴۹۱: | خط ۴۹۲: | ||
formatted_num = lang:formatNum(math.abs(value)) | formatted_num = lang:formatNum(math.abs(value)) | ||
else | else | ||
order = 0; | order = 0; | ||
end | end | ||
formatted_num = sign .. formatted_num | formatted_num = sign .. formatted_num | ||
-- Pad with zeros, if needed | -- Pad with zeros, if needed | ||
if current_precision < precision then | if current_precision < precision then | ||
local padding | local padding | ||
خط ۵۰۹: | خط ۵۱۰: | ||
formatted_num = formatted_num .. string.rep('0', padding) | formatted_num = formatted_num .. string.rep('0', padding) | ||
end | end | ||
else | else | ||
padding = precision - current_precision | padding = precision - current_precision | ||
if padding > 20 then | if padding > 20 then | ||
خط ۵۲۶: | خط ۵۲۷: | ||
else | else | ||
order = lang:formatNum(order) | order = lang:formatNum(order) | ||
end | end | ||
formatted_num = formatted_num .. '<span style="margin:0 .15em 0 .25em">×</span>10<sup>' .. order .. '</sup>' | formatted_num = formatted_num .. '<span style="margin:0 .15em 0 .25em">×</span>10<sup>' .. order .. '</sup>' | ||
خط ۵۳۵: | خط ۵۳۶: | ||
--[[ | --[[ | ||
Helper function that interprets the input numerically. If the | Helper function that interprets the input numerically. If the | ||
input does not appear to be a number, attempts evaluating it as | input does not appear to be a number, attempts evaluating it as | ||
a parser functions expression. | a parser functions expression. |