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

Julho 2017

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



Veja também

Artigo original publicado por . Tradução feita por pintuda. Última modificação: 18 de agosto de 2010 às 22:49 por pintuda.
Este documento, intitulado 'VBA.VB6/.Net - Função Round com arredondamento Superior/Inferior', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (br.ccm.net) ao utilizar este artigo.