HomePrivacy PolicyFeedbackLink to usSite Map

MS Excel: Round Function


In Excel, the Round function returns a number rounded to a specified number of digits.

The syntax for the Round function is:

Round( number, digits )

number is the number to round.

digits is the number of digits to round the number to.


Applies To:

  • Excel 2007, Excel 2003, Excel XP, Excel 2000

For example:

Let's take a look at an example:

Based on the Excel spreadsheet above:

=Round(A1, 0) would return 663
=Round(A1, 1) would return 662.8
=Round(A2, -1) would return 50
=Round(55.1, -1) would return 60
=Round(-23.67, 1) would return -23.7

VBA Code

In Excel's VBA environment, the Round function returns a number rounded to a specified number of decimal places. However, the Round function behaves a little peculiar, so before using this function, please read the following:

The Round function utilizes round-to-even logic. If the expression that you are rounding ends with a 5, the Round function will round the expression so that the last digit is an even number. For example:

Round(12.55, 1) would return 12.6 (rounds up)
Round(12.65, 1) would return 12.6 (rounds down)
Round(12.75, 1) would return 12.8 (rounds up)

In these cases, the last digit after rounding is always an even number. So, be sure to only use the Round function if this is your desired result.

Acknowledgements: A special thanks to Mary S. for bringing this to our attention.


The syntax for the Round function is:

Round ( expression, [ decimal_places ] )

expression is a numeric expression that is to be rounded.

decimal_places is optional. It is the number of decimal places to round the expression to. If this parameter is omitted, then the Round function will return an integer.


For example:

Round(210.67, 1) would return 210.7
Round(210.67, 0) would return 211
Round(210.67) would return 211

The Round function can be used in VBA code. For example:

Dim LNumber As Double

LNumber = Round(210.67, 1)

In this example, the variable called LNumber would now contain the value of 210.7.


Frequently Asked Questions


Question:  I read your explanation of how the Round function works in VBA using the round-to-even logic. However, I really need to round some values in the traditional sense (where 5 always rounds up). How can I do this?

Answer:  You could always use the following logic:

If you wanted to round 12.65 to 1 decimal place in the traditional sense (where 12.65 rounded to 1 decimal place is 12.7, instead of 12.6), try adding 0.000001 to your number before applying the Round function:

Round(12.45+0.000001,1)

By adding the 0.000001, the expression that you are rounding will end in 1, instead of 5...causing the Round function to round in the traditional way.

And the 0.000001 does not significantly affect the value of your expression so you shouldn't introduce any calculation errors.