Ir para conteúdo
  • Cadastre-se

Função para arredondar...


Posts Recomendados

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

Link para o post
Compartilhar em outros sites

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

Link para o post
Compartilhar em outros sites

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
Link para o post
Compartilhar em outros sites

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)

Link para o post
Compartilhar em outros sites

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

 

 

Vou testar depois, obrigado pela resposta.

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

Link para o post
Compartilhar em outros sites

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

Tem algum tutorial sobre essas patterns que você usou ?

@topic

É uma função até que bem útil

                              _
                          .-'` `}
                  _./)   /       }
                .'o   \ |       }
                '.___.'`.\    {`
                /`\_/  , `.    }                                      ME DA UMA NOZ!
                \=' .-'   _`\  {
                 `'`;/      `,  }
                    _\   @   ;  }
                   /__`;-...'--'

Cluck!

Link para o post
Compartilhar em outros sites

Tem algum tutorial sobre essas patterns que você usou ?

@topic

É uma função até que bem útil

Foi  que pensou e propôs para fazer, ele e zipter98 já tinham feito, mas eu deixei pra depois... 

 

 

Só que eles fizeram só para arredondar para cima.

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

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

Link para o post
Compartilhar em outros sites

A que eu mandei no skype arredonda pra baixo tambem.

 

A que você fez junto com o suicide ?

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

Link para o post
Compartilhar em outros sites

Na verdade, eu fiz a minha versao, e o Suicide fez a dele.

A que me refiro e a unica que enviei. Ela arredonda tanto para baixo quanto para cima (nao fiz nada a respeito quanto a numeros decimais pois era apenas um rascunho demonstrativo).

não respondo pms solicitando suporte em programação/scripting

Link para o post
Compartilhar em outros sites

Na verdade, eu fiz a minha versao, e o Suicide fez a dele.

A que me refiro e a unica que enviei. Ela arredonda tanto para baixo quanto para cima (nao fiz nada a respeito quanto a numeros decimais pois era apenas um rascunho demonstrativo).

 

Sim,

eu fiz no celular, só para não ficar sem fazer...

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

Link para o post
Compartilhar em outros sites

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 decimal = 4.5

Link para o post
Compartilhar em outros sites
Foi Suicide que pensou e propôs para fazer, ele e zipter98 já tinham feito, mas eu deixei pra depois...

Só que eles fizeram só para arredondar para cima.

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 arredondamento de inteiros não-negativos e não-nulos, ao meu ver, há mais utilidade desse modo.

PS: as funções que o Garou propôs são muito mais úteis em Lua no geral, eu fiz para se adequar ao Open Tibia mesmo.

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo