Ir para conteúdo

Featured Replies

Postado

Está em fase beta...

mas acho que não usarei...

só gostaria de saber sobre, como consertar o arredondanento para baixo, e qualquer forma mais compacta seria boa para eu estudar e ver como melhorar

function arr(x) 

local arrprabaixo = true

if not tonumber(x) then return false end 

if  x <= 10 then 
print('x = 10')
end


if x > 10 then 

 
z = ''..math.ceil(x)..''
som = 10 - string.sub(tostring(z),#z) 

if tonumber(string.sub(tostring(z),#z)) >= 5 then

print(som+math.ceil(x))
elseif arrprabaixo == true then
print(x-tonumber( string.sub(tostring(z),#z)))
end
end 
return true 
end 

arr(1004.9999)
no caso, era pra retornar 1000, mas eu fiz errado e retorna 1010

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

  • Respostas 13
  • Visualizações 1.2k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Sem casas decimais: function Round(number) return string.format("%.0f", number) end Com casas decimais: function Round(number, decimals) decimals = decimals or 0 return string.format("%.".. de

  • A função que eu postei no tópico arrendonda tanto para baixo como para cima, dependendo do número.   4.6 = Retorna 5 4.42 = Retorna 4   4.44 com uma casa decimal = 4.4   4.46 com uma casa decim

  • Que eu me lembre, nem cheguei a mostrar os meus códigos, como pôde concluir que só fiz arredondando pra cima? Terminei-a, caso queira ver como ficou: math.round(n) Fiz apenas para resultar no a

Postado
  • Autor

iiiii nem me dei conta... é isso mesmo vou criar uma var y...

mas mesmo assim complica quando o número tem decimais tipo 1004.99999

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

Postado

Tive uma lógica assim, agora se vai funcionar, só Deus sabe!

function Arredondar(number)

	if (not tonumber(number)) then 
		return false 
	end
	
	if (number <= 10) then 
		return 10
	else
		local x = number / 10
		local s = tostring(x)
		local i = s:find('%.')
		if i then
			return tonumber(s:sub(1, i-1))
		else
			return (number * 10)
		end
	end
end
Postado

Sem casas decimais:

function Round(number)
	return string.format("%.0f", number)
end

Com casas decimais:

function Round(number, decimals)
	decimals = decimals or 0
	return string.format("%.".. decimals .."f", number)
end

Att.

Garou

Editado por Garou (veja o histórico de edições)

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo