Mô đun:Decimals

require('strict')

local p = {}

function p._main(n, d)
	local num = tonumber(n)
	if not num then
		error('Không thể chuyển đổi "' .. tostring(n) .. '" thành số')
	end
	local decimals = tonumber(d)
	if not decimals then
		error('Không thể chuyển đổi "' .. tostring(d) .. '" thành số')
	end
	local maxDecimals = 14 - math.floor(math.log10(num)) -- to allow a maximum of 15 significant figures, which is the highest guaranteed correct with doubles
	if decimals > maxDecimals then decimals = maxDecimals end
	local mult = 10^decimals
	num = math.floor(num * mult + 0.5) / mult
	if decimals < 0 then
		return tostring(num)
	else
		return string.format('%.' .. decimals .. 'f', num)
	end
end

function p.main(frame)
	local args, pargs = frame.args, frame:getParent().args
	local function work()
		return p._main(
			mw.ext.ParserFunctions.expr(args[1] or pargs[1]),
			mw.ext.ParserFunctions.expr(args[2] or pargs[2])
		)
	end
	local success, result = pcall(work)
	if success then
		return result
	end
	local errtext = args.error or pargs.error
	if errtext then
		return errtext
	end
	error(result, 0)
end

return p
Chúng tôi bán
Bài viết liên quan
Vì sao cảm xúc quan trọng đối với quảng cáo?
Vì sao cảm xúc quan trọng đối với quảng cáo?
Cảm xúc có lẽ không phải là một khái niệm xa lạ gì đối với thế giới Marketing
Lịch Sử fun facts: cái tên Ivan của người Nga!
Lịch Sử fun facts: cái tên Ivan của người Nga!
Gần như ai cũng biết, khi nói về 1 người Nga bất kỳ ta mặc định anh ta là Ivan
Tóm tắt chương 226 Jujutsu Kaisen
Tóm tắt chương 226 Jujutsu Kaisen
Đột nhiên, Hiruguma nói rằng nếu tiếp tục ở trong lãnh địa, Gojo vẫn phải nhận đòn tất trúng
Hướng dẫn sử dụng Odin – Thor's Father Valorant
Hướng dẫn sử dụng Odin – Thor's Father Valorant
Trong không đa dạng như Rifle, dòng súng máy hạng nặng của Valorant chỉ mang tới cho bạn 2 lựa chọn mang tên hai vị thần