local p = {}
-- 별점 개선
function p.calculate_average(frame)
-- 점수 배열 가져오기
local args = frame.args
local scores = {}
for _, value in ipairs(args) do
local score = tonumber(value)
if score then
if score >= 0 and score <= 5 then
table.insert(scores, score)
else
return "점수는 0에서 5 사이여야 합니다."
end
end
end
-- 점수가 없으면 에러 메시지 출력
if #scores == 0 then
return "점수가 입력되지 않았습니다."
end
-- 점수 합산 및 평균 계산
local sum = 0
for _, score in ipairs(scores) do
sum = sum + score
end
local average = sum / #scores
-- 소수점 둘째 자리에서 반올림
average = math.floor(average * 100 + 0.5) / 100
-- 불필요한 0 제거 후 반환
local result = tostring(average)
if result:find("%.") then
result = result:gsub("0+$", ""):gsub("%.$", "")
end
return result
end
return p