I have encountered a weird case in Math.Round function in VB.Net
Math.Round((32.625), 2)
Result : 32.62
Try this (from memory):
Math.Round((32.635), 2, MidPointRounding.AwayFromZero)