Module:Utils/number: Difference between revisions
From Space Station 14 Wiki
Created page with "local p = {} return p" |
No edit summary |
||
Line 1: | Line 1: | ||
local p = {} | local p = {} | ||
-- Formats a probability number, ranging from 0 to 1, | |||
-- to a percentage with specified number of digits after comma. | |||
-- If rounding occurs, also adds "≈". | |||
-- @param prob Probability, from 0 to 1. | |||
-- @param digits Digits after comma. Any more get rounded. | |||
function p.format_probability(prob, digits) | |||
local percentage = prob * 100 | |||
local percentage_display | |||
if digits == nil then | |||
percentage_display = percentage .. "%" | |||
else | |||
local percentage_rounded_str = string.format("%." .. digits .. "f", percentage) | |||
:gsub("%.?0+$", "") -- strip trailing zeros (including the dot if theres all zeros after) | |||
local was_percentage_rounded = tostring(percentage) ~= percentage_rounded_str | |||
percentage_display = (was_percentage_rounded and "≈" or "") .. percentage_rounded_str .. "%" | |||
end | |||
return percentage_display | |||
end | |||
return p | return p |
Revision as of 06:10, 24 May 2025
Module documentation
|
---|
View or edit this documentation • (about module documentation) |
Contains number-related module utilities.
local p = {}
-- Formats a probability number, ranging from 0 to 1,
-- to a percentage with specified number of digits after comma.
-- If rounding occurs, also adds "≈".
-- @param prob Probability, from 0 to 1.
-- @param digits Digits after comma. Any more get rounded.
function p.format_probability(prob, digits)
local percentage = prob * 100
local percentage_display
if digits == nil then
percentage_display = percentage .. "%"
else
local percentage_rounded_str = string.format("%." .. digits .. "f", percentage)
:gsub("%.?0+$", "") -- strip trailing zeros (including the dot if theres all zeros after)
local was_percentage_rounded = tostring(percentage) ~= percentage_rounded_str
percentage_display = (was_percentage_rounded and "≈" or "") .. percentage_rounded_str .. "%"
end
return percentage_display
end
return p