VBA.VB6/.Net - Função Round com arredondamento Superior/Inferior

Faça uma pergunta
A função Round() faz um arredondamento errado para os números do tipo (2a + 0,5) x 10^-n (arredondados para baixo !!!).
Em compensação, os números do tipo (2a - 0,5) x 10^-n, normalmente, são arredondados para cima.

Par exemple:

Round(0.15 , 1) = 0.2
Round(0.25 , 1) = 0.2
Round(0.35 , 1) = 0.4
Round(0.45 , 1) = 0.4

A função de Arredondamento, proposta abaixo, não apresenta esta anomalia:

Arredondamento (0.15 , 1) = 0.2
Arredondamento (0.25 , 1) = 0.3
Arredondamento (0.35 , 1) = 0.4
Arredondamento (0.45 , 1) = 0.5

Private Function Arredondamento (ByVal Numero, ByVal Decimais)   
      Arredondamento = Int(Numero * 10 ^ Decimais + 1 / 2) / 10 ^ Decimais 
End Function



Jean-François Pillou

Nosso conteúdo é produzido em colaboração com especialistas em tecnologia da informação sob o comando de Jean-François Pillou, fundador do CCM.net e diretor digital do Grupo Figaro. CCM é um site sobre tecnologia líder em nível internacional e está disponível em 11 idiomas.

Mais informações sobre a equipe do CCM

Veja também