Tienes varias opciones de redondeo...
La función adecuada depende de como esperes que responda, también con los números negativos.
Si
Siempre ha de ser
por exceso, la función es
Ceiling.
Si lo que deseas es un
redondeo al número más próximo, la función es
Round.
Si
siempre ha de ser
la parte entera (eliminar los decimales), la función es
Fix.
Si
siempre ha de ser
el valor más bajo, la función es
Int, o Floor.Aquí un ejemplo de prueba y comentado el resultado que arroja:
Dim x as single, y as integer
x = 15.62
y = Int(x) ' 15
y = Fix(x) ' 15
y = Math.Ceiling(x) ' 16
y = Math.Floor(x) ' 15
y = Math.Round(x) ' 16
x = 15.32
y = Int(x) ' 15
y = Fix(x) ' 15
y = Math.Ceiling(x) ' 16
y = Math.Floor(x) ' 15
y = Math.Round(x) ' 15
x = -15.62
y = Int(x) ' -16
y = Fix(x) ' -15
y = Math.Ceiling(x) ' -15
y = Math.Floor(x) ' -16
y = Math.Round(x) ' -16
x = -15.32
y = Int(x) ' -16
y = Fix(x) ' -15
y = Math.Ceiling(x) ' -15
y = Math.Floor(x) ' -16
y = Math.Round(x) ' -15
p.d.: Para hacelro con un múltiplo (si mal no entendí, ya me dirás)... sería así un ejemplo:
X = (20\(20\3)) * Math.ceiling(20/3)
(20\6) = 3
(20/3) = 6.6666 : Math.Ceiling(6.66666) = 7
x = (3 * 7) = 21