Rounding a Number

Suppose I have two integers A and B, where B is not 0. I want to round A to the nearest integral multiple of B. How can I do it?

Here is a way to do it (in pseudocode):

     C = the quotient of A divided by B
     D = the remainder of A divided by B
     Result = C times B
     D = absolute value of D
     E = absolute value of B
     D = 2 times D
     If D is greater than or equal to E
       If A is greater than 0
         Result = Result + E
       Else
         Result = Result - E
       End-If
     End-If

The final value we want is the value of Result.

All the variables involved here are integers.

To understand this, you may need to work through a few examples using various values (even odd, positive, negative).