VBA.VB6/.Net - función Round con redondeo hacia arriba o abajo

Diciembre 2016



La función Round() no redondea bien para los números de la forma (2a + 0,5) x 10^-n (redondeados hacia abajo)
En cambio, los números de la forma (2a - 0,5) x 10^-n normalmente son bien redondeados hacia arriba.

Por ejemplo:

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

La función Redondeo que veremos a continuación no presenta este problema:

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

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



Consulta también :
El documento «VBA.VB6/.Net - función Round con redondeo hacia arriba o abajo» de CCM (es.ccm.net) se encuentra disponible bajo una licencia Creative Commons. Puedes copiarlo o modificarlo siempre y cuando respetes las condiciones de dicha licencia y des crédito a CCM.