Be careful, the VBA Round function uses Banker's rounding, where it rounds .5 to an even number, like so:

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)   

Whereas the Excel Worksheet Function Round, always rounds .5 up.

I've done some tests and it looks like .5 up rounding (symmetric rounding) is also used by cell formatting, and also for Column Width rounding (when using the General Number format). The 'Precision as displayed' flag doesn't appear to do any rounding itself, it just uses the rounded result of the cell format.

I tried to implement the SymArith function from Microsoft in VBA for my rounding, but found that Fix has an error when you try to give it a number like 58.55; the function giving a result of 58.5 instead of 58.6. I then finally discovered that you can use the Excel Worksheet Round function, like so:

Application.Round(58.55, 1)

This will allow you to do normal rounding in VBA, though it may not be as quick as some custom function. I realize that this has come full circle from the question, but wanted to include it for completeness.

Answer from Lance Roberts on Stack Overflow
๐ŸŒ
TechOnTheNet
techonthenet.com โ€บ access โ€บ functions โ€บ numeric โ€บ round.php
MS Access: Round Function
This MSAccess tutorial explains how to use the Access Round function with syntax and examples. The Microsoft Access Round function returns a number rounded to a specified number of decimal places.
Discussions

excel - Rounding in MS Access - Stack Overflow
Depends on the version of Access. From Access 2000 on, a Round() function is included, but it doesn't give the results you might expect (see Lance Roberts' post below). More on stackoverflow.com
๐ŸŒ stackoverflow.com
Solved - Rounding decimal places | Access World Forums
How to round numbers in Microsoft Access: to the nearest number, rounding up, rounding down, to the nearest 5 cents, rounding dates and times, bankers rounding, and handling floating point errors ... The function you referenced is not part of the standard VBA library. More on access-programmers.co.uk
๐ŸŒ access-programmers.co.uk
May 3, 2022
Ms ACCESS and SQL: round to two decimals through query - Stack Overflow
Also, please note that Round is quite buggy, so if accuracy has any importance, study this link: Rounding values up, down, by 4/5, or to significant figures for functions that predictably will round any value of any numeric data type. ... Access SQL has a rich function set one of which is the ... More on stackoverflow.com
๐ŸŒ stackoverflow.com
Rounding in access 97
If I want to use the round function in excel in access i.e round (A1,2). What is the equivalent in Access? there is rnd but that dosen't seem to let you specify decimal places. Thanks. More on tek-tips.com
๐ŸŒ tek-tips.com
2
0
September 2, 2002
๐ŸŒ
W3Schools
w3schools.com โ€บ sql โ€บ func_msaccess_round.asp
MS Access Round() Function
String Functions: Asc Chr Concat with & CurDir Format InStr InstrRev LCase Left Len LTrim Mid Replace Right RTrim Space Split Str StrComp StrConv StrReverse Trim UCase Numeric Functions: Abs Atn Avg Cos Count Exp Fix Format Int Max Min Randomize Rnd Round Sgn Sqr Sum Val Date Functions: Date DateAdd DateDiff DatePart DateSerial DateValue Day Format Hour Minute Month MonthName Now Second Time TimeSerial TimeValue Weekday WeekdayName Year Other Functions: CurrentUser Environ IsDate IsNull IsNumeric SQL Quick Ref
๐ŸŒ
Allenbrowne
allenbrowne.com โ€บ round.html
Microsoft Access tips: Rounding numbers in Access
Access displays currency fields rounded to the nearest cent, but it stores the value to the hundredth of a cent (4 decimal places.) The Round() function in Access uses a bankers rounding. When the last significant digit is a 5, it rounds to the nearest even number.
Top answer
1 of 13
26

Be careful, the VBA Round function uses Banker's rounding, where it rounds .5 to an even number, like so:

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)   

Whereas the Excel Worksheet Function Round, always rounds .5 up.

I've done some tests and it looks like .5 up rounding (symmetric rounding) is also used by cell formatting, and also for Column Width rounding (when using the General Number format). The 'Precision as displayed' flag doesn't appear to do any rounding itself, it just uses the rounded result of the cell format.

I tried to implement the SymArith function from Microsoft in VBA for my rounding, but found that Fix has an error when you try to give it a number like 58.55; the function giving a result of 58.5 instead of 58.6. I then finally discovered that you can use the Excel Worksheet Round function, like so:

Application.Round(58.55, 1)

This will allow you to do normal rounding in VBA, though it may not be as quick as some custom function. I realize that this has come full circle from the question, but wanted to include it for completeness.

2 of 13
11

To expand a little on the accepted answer:

"The Round function performs round to even, which is different from round to larger."
--Microsoft

Format always rounds up.

  Debug.Print Round(19.955, 2)
  'Answer: 19.95

  Debug.Print Format(19.955, "#.00")
  'Answer: 19.96

ACC2000: Rounding Errors When You Use Floating-Point Numbers: http://support.microsoft.com/kb/210423

ACC2000: How to Round a Number Up or Down by a Desired Increment: http://support.microsoft.com/kb/209996

Round Function: http://msdn2.microsoft.com/en-us/library/se6f2zfx.aspx

How To Implement Custom Rounding Procedures: http://support.microsoft.com/kb/196652

๐ŸŒ
Access World
access-programmers.co.uk โ€บ home โ€บ forums โ€บ microsoft access discussion โ€บ modules & vba
Solved - Rounding decimal places | Access World Forums
May 3, 2022 - Rounds a value to the nearest integer or to the specified number of fractional digits. docs.microsoft.com There is supposedly a way to have Access call a .NET function but you have some work to do.
๐ŸŒ
Microsoft Learn
learn.microsoft.com โ€บ en-us โ€บ office โ€บ client-developer โ€บ access โ€บ round-function-access-custom-web-app
Round Function (Access custom web app) | Microsoft Learn
Microsoft no longer recommends creating and using Access web apps in SharePoint. As an alternative, consider using Microsoft PowerApps to build no-code business solutions for the web and mobile devices. Round (Number, Precision, [ TruncateInsteadOfRound ]) The Round function contains the following arguments.
Find elsewhere
๐ŸŒ
TechOnTheNet
techonthenet.com โ€บ access โ€บ functions โ€บ misc โ€บ customround.php
MS Access: Creating a custom round function
You'll need to open your Access database and create a new module. Then paste into the new module the following function: Function CustomRound(pValue As Double) As Double Dim LWhole As Long Dim LFraction As Double 'Retrieve integer part of the number LWhole = Int(pValue) 'Retrieve the fraction part of the number LFraction = pValue - LWhole If LFraction < 0.5 Then CustomRound = LWhole Else CustomRound = LWhole + 0.5 End If End Function ยท Now, when you want to round your values, you can use the round function as follows:
๐ŸŒ
Computer Learning Zone
599cd.com โ€บ tips โ€บ access โ€บ round-int-fix
Round Int Fix - Microsoft Access
New Tips Added Weekly! Click here to get on our Mailing List ยท Access Excel Word Windows FrontPage Hardware Misc VB VBScript VB.NET ASP HTA
๐ŸŒ
Webcheatsheet
webcheatsheet.com โ€บ access_functions โ€บ round
Access: Round Function โ€“ WebCheatSheet
In Access, the Round function returns a number rounded to a specified number of decimal places.
๐ŸŒ
ConsultDMW
consultdmw.com โ€บ access-rounding-numbers.html
Access VBA Function That Rounds Numbers Like Excel ROUND
April 26, 2024 - Microsoft Access VBA function that rounds numbers up and down like Excel ROUND function to set number of decimal places in results to calculations
๐ŸŒ
TutorialsArena
tutorialsarena.com โ€บ database โ€บ sql โ€บ func-msaccess-round
MS Access Round() Function
August 10, 2024 - The Round() function in MS Access rounds a number to a specified number of decimal places. This is a very common mathematical function used for presenting numbers in a more concise or user-friendly format.
๐ŸŒ
YouTube
youtube.com โ€บ watch
Rounding Numbers in Microsoft Access. Understanding Int, Fix, Round, and Banker's Rounding - YouTube
In this video, I'm going to teach you all about rounding in Microsoft Access. We'll look at the Round, Int, and Fix functions and how they're different. We'l...
Published ย  May 19, 2022
๐ŸŒ
VBA Express
vbaexpress.com โ€บ kb โ€บ archive.php โ€บ k-424.html
VBA Express : Access - Round up a value using the Integer or Round function.
Round up a value using the Integer or Round function. This code converts a decimal value to an Integer value by rounding it up, never down.
๐ŸŒ
Narkive
microsoft.public.access.queries.narkive.com โ€บ VGnO7hUH โ€บ i-need-help-with-the-round-function-in-access-is-it-me-or-micros
I need help with the Round Function in Access. Is it me or Micros
Permalink When you use the Round Function in a query in Access it does not work the same as the Round Function in Excel. When you use this function to round numbers such as 2.5, 3.5, 4.5, 5.5 etc. to the nearest integer it will round the ones with an even number to the left of the decimal place up and it will roudn the ones with an odd number to the left of the decimal place down.
๐ŸŒ
GeeksforGeeks
geeksforgeeks.org โ€บ sql โ€บ rnd-and-round-function-in-ms-access
Rnd() and Round Function in MS Access - GeeksforGeeks
September 2, 2020 - Syntax : ... 2. Round() Function : Round() function returns rounds a number to a specified number of decimal places.In this function we will pass an expression and the second parameter will be decimal places till that the number will be rounded.
๐ŸŒ
Excelfox
excelfox.com โ€บ forum โ€บ showthread.php โ€บ 318-ROUNDUP-AND-ROUNDDOWN-In-MS-Access-With-Zero-Significance
ROUNDUP AND ROUNDDOWN In MS-Access With Zero Significance
September 22, 2023 - How we wished Access had the roundup and rounddown functions like Excel!! Seems we can have workarounds for this one too. To roundup a calculated value or a field value to zero significance (in other words, the equivalent of ROUNDUP(num,0)) , just do the following SELECT CINT(+0.5) FROM Similarly, to rounddown with zero significance,