Field Guide

The ROUND function in Excel: ROUND, ROUNDUP, ROUNDDOWN, and MROUND

Updated

ROUND changes the number itself. =ROUND(A2, 2) takes 23.7825 and returns 23.78, and 23.78 is the value every downstream formula now calculates with. That deliberate kind of rounding is what this page covers: ROUND and its num_digits argument, ROUNDUP and ROUNDDOWN when the direction is a policy, MROUND, CEILING, and FLOOR for multiples like the nearest 5 or the nearest nickel, and TRUNC and INT for plain cutting.

If you landed here because Excel is rounding numbers you never asked it to touch, that is the other rounding problem. It is usually the display, not a function: see how to stop Excel from rounding. The two problems meet at the end of this page, where a column rounded for display stops adding up to its own total.

How does the ROUND function work?

fx
=ROUND(number, num_digits)

Both arguments are required: number is the value to round, num_digits is the number of digits to round it to. Microsoft’s own example is a cell holding 23.7825, rounded to two decimal places:

C2
fx
=ROUND(A2, 2)
A B C
1 Raw value Rounded
2 23.7825 23.78
C2 stores 23.78. A2 keeps its full 23.7825; the ROUND result is a new stored value in its own cell, not a display change.

The num_digits argument runs in three modes. Positive keeps that many decimal places, zero rounds to the nearest whole number, and negative rounds to the left of the decimal point:

Formula Result What num_digits did
=ROUND(23.7825, 2) 23.78 Kept two decimal places
=ROUND(23.7825, 0) 24 Rounded to the nearest whole number
=ROUND(23.7825, -1) 20 Rounded to the nearest 10

The negative mode is how “round to the nearest 100” works: each step below zero moves one place left, so -2 targets hundreds and -3 targets thousands. =ROUND(1284, -2) returns 1300, and Microsoft’s example table rounds 626.3 to the nearest multiple of 1,000 with =ROUND(626.3, -3), returning 1000. If formulas themselves are new territory, the formula basics guide covers the reading order.

What does ROUND do with a 5?

The ROUND function page shows the tie case only in its example table; the rule in words lives on Microsoft’s rounding overview: “If the fractional part is 0.5 or greater, the number is rounded up. If the fractional part is less than 0.5, the number is rounded down.” For rounding whole numbers, Microsoft describes a similar rule, with multiples of 5 standing in for 0.5.

The function page puts numbers on it: =ROUND(2.15, 1) returns 2.2, while =ROUND(2.149, 1) returns 2.1. Negative numbers round on their size, not their position on the number line: Excel rounds the number as if it were positive and puts the minus sign back afterward, so =ROUND(-1.475, 2) returns -1.48.

ROUNDUP and ROUNDDOWN: choosing the direction

Both functions take the same two arguments as ROUND, and both ignore how close the next value is. ROUNDUP always moves away from zero; ROUNDDOWN always moves toward zero. =ROUNDUP(3.14159, 3) returns 3.142 and =ROUNDDOWN(3.14159, 3) returns 3.141, whatever the fourth decimal happens to be. The num_digits modes carry over unchanged, including negative: =ROUNDDOWN(31415.92654, -2) returns 31400.

On negative numbers, read the definitions literally:

=ROUNDUP(-3.14159, 1)
Away from zero, not upward on the number line: the result is -3.2. ROUNDDOWN(-3.14159, 1) moves toward zero and returns -3.1.

Reach for the pair when the direction is policy rather than arithmetic: billable time that always rounds up to the next unit, a discount that never rounds in the customer’s favor. When either function appears in an inherited workbook, someone chose that direction on purpose; check the intent before swapping in ROUND.

How do I round to the nearest 5, 100, or another multiple?

The num_digits argument thinks in powers of ten. For any other step, Microsoft’s ROUND page points at MROUND:

fx
=MROUND(number, multiple)

MROUND returns the number rounded to the nearest multiple you name: =MROUND(10, 3) returns 9, =MROUND(1.3, 0.2) returns 1.4, and the everyday case is billing or scheduling in 5s:

B2
fx
=MROUND(A2, 5)
A B
1 Minutes Billed (nearest 5)
2 47 45
3 33 35
4 61 60
The formula is filled down column B. Against a multiple of 5, the remainder of 47 is 2 (below half, rounds down to 45), of 33 is 3 (at least half, rounds up to 35), and of 61 is 1 (down to 60).

Microsoft’s MROUND page pins the tipping point exactly: “MROUND rounds up, away from zero, if the remainder of dividing number by multiple is greater than or equal to half the value of multiple.”

Two cautions, both documented on that page:

For the nearest 100 on a positive value, both routes work: =MROUND(A2, 100), or =ROUND(A2, -2) from the previous section. On a negative value the ROUND route works as is; MROUND needs the multiple to be negative as well, per the sign rule above.

CEILING and FLOOR round to a multiple with a forced direction. CEILING pushes a number up, away from zero, until it reaches a multiple of its significance argument; Microsoft’s example is pricing without pennies, where =CEILING(4.42, 0.05) rounds up to the next nickel, 4.45. A number already sitting on an exact multiple is returned unchanged. FLOOR is the counterpart, rounding down to the nearest multiple, and it returns the #NUM! error when the number is positive and the significance negative.

Round to 2 decimal places: ROUND or a number format?

There are two ways to make 23.7825 read as 23.78, and they are different operations:

Neither is wrong; they answer different questions. If the cell only needs to look tidy, format it. If the figure feeds other calculations and the printed numbers must tie out, round the value at an agreed point in the calculation. The display side of the story, including why Excel shows fewer decimals than you typed and how to undo it, is covered in how to stop Excel from rounding.

TRUNC and INT: cutting decimals off instead of rounding

TRUNC does not round at all. It truncates: the decimals are removed and what is left is returned, so =TRUNC(8.9) returns 8 even though 9 is nearer. Its num_digits argument is optional and defaults to 0; =TRUNC(8.98, 1) returns 8.9.

INT looks similar but is defined differently: it rounds down to the nearest integer. On positive numbers the two agree; on negative numbers they part ways, because TRUNC cuts the decimals off and keeps what is left, while INT drops to the next integer below:

Formula Result
=TRUNC(8.9) 8
=INT(8.9) 8
=TRUNC(-8.9) -8
=INT(-8.9) -9

Why do rounded figures stop adding up?

Most rounding complaints in shared workbooks trace back to one of three patterns. The worst of them involves no rounding function at all.

1. The data was rounded for display only

A column formatted to two decimals can visibly fail to tie to its own total, with every stored value correct:

B4
fx
=SUM(B2:B3)
A B
1 Line Amount
2 Materials 2.01
3 Labor 2.01
4 Total 4.03
Both amounts store 2.014 and display 2.01 under a two-decimal format; the SUM stores 4.028 and displays 4.03. Every stored value reconciles, but the reader sees 2.01 + 2.01 = 4.03.

The stored arithmetic is exact; only the displayed figures disagree. The fix is a choice: show enough decimals for the printed figures to reconcile, or apply ROUND so the stored values match what is shown. The full display story belongs to the stop-rounding guide; the reviewer’s problem is that nothing on the sheet looks wrong.

2. Rounding happened at more than one level

Round the same figures at two levels and the levels can disagree. Using the grid above: round each 2.014 line in the data and the lines become 2.01 + 2.01 = 4.02, but round the raw total instead and it becomes 4.03. Both policies are defensible; holding both at once produces a report that argues with itself by a cent. Pick one place to round, usually once, at the last step before the number is presented.

3. ROUND sits in the wrong place in the formula

=ROUND(A2, 2)*B2 rounds an input and then multiplies; =ROUND(A2*B2, 2) multiplies and then rounds the result. With 2.347 in A2 and 3 in B2, the first returns 2.35 × 3 = 7.05 and the second returns 7.04, because 2.347 × 3 = 7.041. One cent per row, silently, and which one is correct depends on whether the unit price or the line total is the figure your process treats as real.

The short version

Frequently asked questions

How do I round a number to 2 decimal places in Excel?
Use ROUND with num_digits of 2: =ROUND(A2, 2) turns 23.7825 into 23.78, and that rounded value is what every downstream formula now uses. Formatting the cell to show two decimals looks the same but changes only the display; the full-precision value stays underneath and keeps feeding other calculations.
How do I round to the nearest 5 in Excel?
Use =MROUND(A2, 5). MROUND returns the number rounded to the multiple you name: with a whole-number multiple it moves up, away from zero, once the remainder reaches at least half the multiple, so 33 becomes 35, while 47, whose remainder is below half, becomes 45. With a decimal multiple, Microsoft documents the direction at the exact midpoint as undefined. The number and the multiple must have the same sign, otherwise MROUND returns the #NUM! error.
How do I round to the nearest 100 in Excel?
For positive values, two ways work: =MROUND(A2, 100), or =ROUND(A2, -2), because a negative num_digits rounds to the left of the decimal point. For negative values the simplest route is ROUND, since MROUND requires the multiple to share the number's sign: Microsoft's own example table rounds -50.55 to the nearest multiple of 100 with =ROUND(-50.55, -2), returning -100. Use num_digits of -3 for the nearest 1,000.
What is the difference between ROUND, ROUNDUP, and ROUNDDOWN?
ROUND goes to the nearest value at the precision you set. ROUNDUP and ROUNDDOWN take the same two arguments but force the direction: ROUNDUP always moves away from zero and ROUNDDOWN always moves toward zero. On negative numbers that wording matters: ROUNDUP(-3.14159, 1) returns -3.2, the value further from zero.
Why don't my rounded numbers add up to the total?
Usually because the cells were rounded for display only: a two-decimal format shows 2.01 while the cell still stores 2.014, so the printed figures need not add up to the printed total even though the stored values do. Either show enough decimals for the figures to reconcile, or apply ROUND so the stored values match what is shown.
What is the difference between TRUNC and INT?
Both drop decimals, and on positive numbers they agree: TRUNC(8.9) and INT(8.9) both return 8. They differ on negative numbers. TRUNC removes the fractional part, so TRUNC(-8.9) returns -8; INT rounds down to the nearest integer below, so INT(-8.9) returns -9.

Catch the errors before they ship

Reviewing a change to a model? Compare the two versions in your browser and see every changed cell, formula, and value. It's free, and nothing leaves your computer.