Stop Letting Excel Round Numbers — Try This Instead

The first thing most people do when they notice Excel showing 12.35 instead of 12.349999999999998 is format the cell to show more decimals. That’s like putting tape on a leaky pipe — the number underneath is still wrong, and your SUMs, comparisons, and exports will break.

The Problem

You’re reconciling Q1 vendor invoices in Sheet1. Column A has invoice IDs, B has quoted amounts from a supplier API (imported as text then converted), and C uses =B2*1.07 to calculate tax-inclusive totals. But your finance team says the total doesn’t match their ERP system — off by $0.01 across 47 line items.

Here’s what’s actually happening in your sheet:

Invoice IDQuoted AmountTax-Inclusive (Formula)Actual Value (F9)
INV-7821$4,299.99$4,600.994600.9893
INV-7822$1,850.00$1,979.501979.4999999999998
INV-7823$999.50$1,069.471069.465
INV-7824$3,125.75$3,344.553344.5525000000003
INV-7825$2,000.00$2,140.002140
INV-7826$745.25$800.00799.9999999999999

That last row? 745.25 * 1.07 = 799.9999999999999, not 800.00. Excel displays 800.00 because of cell formatting — but the underlying value is imprecise. And if you copy that cell into another workbook or export to CSV, you’ll get 799.9999999999999, not 800.

The Solution

Don’t fight display — fix the math. Use ROUND() where precision matters, but only after you’ve verified the source data type. Here’s how to fix rows B2:C7:

  1. Select B2:B7 → Press Ctrl+H → Find ., Replace with . → Click Options → Check Match entire cell contents → Click Replace All. This forces Excel to re-evaluate stored values as numbers, not text artifacts.
  2. In C2, replace =B2*1.07 with =ROUND(B2*1.07,2). Drag down to C7.
  3. Select C2:C7 → Right-click → Format Cells → Number tab → Decimal places: 2 → OK.
  4. Verify with F9 in formula bar: now C6 shows 800.00 and its underlying value is exactly 800.

Here’s the corrected table:

Invoice IDQuoted AmountTax-Inclusive (Fixed)Underlying Value
INV-7821$4,299.99$4,600.994600.99
INV-7822$1,850.00$1,979.501979.5
INV-7823$999.50$1,069.471069.47
INV-7824$3,125.75$3,344.553344.55
INV-7825$2,000.00$2,140.002140
INV-7826$745.25$800.00800

Total now matches ERP down to the cent. No formatting tricks. Just clean math.

Going Further

If you’re pulling numbers from external systems (like SAP exports or JSON APIs), add this step before any calculation: wrap raw inputs in VALUE(TRIM(CLEAN(A2))). It strips non-breaking spaces, invisible characters, and coerces text to numbers — which prevents silent rounding before your ROUND() even runs.

For financial reporting where rounding direction matters (e.g., tax calculations must always round up), use ROUNDUP(A2*1.07,2) or ROUNDDOWN(). Don’t assume ROUND() is neutral — it follows “round half to even” (banker’s rounding), so ROUND(2.5,0) = 2, not 3.

Surprising tip: INT() and TRUNC() behave differently with negatives. TRUNC(-2.7,0) = -2; INT(-2.7) = -3. If you’re truncating invoice discounts, use TRUNC() — otherwise you’ll over-discount.

When NOT to Use This

Avoid ROUND() inside array formulas used for conditional sums (SUMIFS, COUNTIFS) unless you’re rounding the criteria range itself. Rounding inside those functions can cause mismatches — e.g., =SUMIFS(C:C,B:B,">="&ROUND(E1,2)) may exclude a value that’s technically ≥ but got truncated mid-calc.

Never round before unit conversions. If you have millimeters in column D and need meters in E2, =ROUND(D2/1000,3) loses precision needed for engineering tolerances. Do the math first, round only at final output.

And skip rounding entirely for scientific or statistical work — standard deviation, regression coefficients, or p-values require full precision. Formatting alone is fine there.

Keyboard Shortcuts

ActionShortcutNotes
Open Format Cells dialogCtrl+1Fastest way to adjust decimal places
Toggle formula view (F9)Ctrl+` (backtick)Shows actual stored values, not display
Open Find & ReplaceCtrl+HUse to force number re-evaluation (see Step 1)
Edit formula in cellF2Then press F9 to evaluate part of formula
Recalculate all sheetsF9Critical after changing ROUND() logic
Michael Lee

Michael Lee

Michael covers the latest in office software updates