Angelo Pereira Posted January 11, 2020 Share Posted January 11, 2020 (edited) Olá Pessoal, Bom, eu tentei, retentei e infelizmente não consegui fazer, tentando utilizar string.formart e outros para encurtar um determinado número com pontos(.) Exemplo[1]: 2.4566775 Exemplo[2]: 134.34566666 O que eu quero fazer? É Encurtar a partir da terceira casa depois do ponto(.) todos números, ou seja... no Exemplo[1] dado ficaria assim : 2.456 no Exemplo[2] dado ficaria assim : 134.345 Alguém me da uma luz? Eu estou tentando encurtar os números obtidos pela divisão de kill/mortes. -- Apenas Para Demostração! local kill = getElementData(source, "Kills") or 0 local mortes = getElementData(source, "Deaths") or 0 local valor = tonumber(kill/mortes) -- K/D ou seja divide o valor de quantidade de kill por mortes. (Onde deixa um número muito extenso). Tentativas utilizando String: string.gsub(valor, "^%(.)%03d", '' ) string.gsub(valor, "^%d[.]%03d", '') math.round(valor, 3) Eu, pessoalmente digo que eu não sei usa string, apenas tentei, depois de 4 dias tentando de várias formas, mas o resultado era sempre o mesmo! Edited January 12, 2020 by Angelo Pereira Link to comment
Other Languages Moderators Lord Henry Posted January 12, 2020 Other Languages Moderators Share Posted January 12, 2020 (edited) function math.round(number, decimals, method) decimals = decimals or 0 local factor = 10 ^ decimals if (method == "ceil" or method == "floor") then return math[method](number * factor) / factor else return tonumber(("%."..decimals.."f"):format(number)) end end ratio = 3.524923 -- Valor qualquer só pra testar. function qualquerCoisa (cmd) outputChatBox (math.round (ratio, 3, "floor"), 255, 255, 0) -- Manda no chat o número com somente 3 decimais. end addCommandHandler ("ratio", qualquerCoisa) Client-side Edited January 12, 2020 by Lord Henry 1 Link to comment
main Posted January 12, 2020 Share Posted January 12, 2020 Tente isto: -- func para arredondar os numeros, encontrada em: Lua-users.org/wiki/SimpleRound function round2(num, numDecimalPlaces) return tonumber(string.format("%." .. (numDecimalPlaces or 0) .. "f", num)) end local kill = getElementData(source, "Kills") or 0 local mortes = getElementData(source, "Deaths") or 0 local kdr = round2(kill/mortes, 3) 1 Link to comment
Angelo Pereira Posted January 12, 2020 Author Share Posted January 12, 2020 Muito Obrigado @Lord Henry & @MainSCR ! Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now