# Excel - ROUNDING IN EXCEL

Asked By Anon on 13-Mar-08 06:51 PM
```I have a customer who wants calculations Rounded per the requirements of
ASTM E29.  Does anyone know if Microsoft Excel complies with ASTM E29 when
numbers are rounded?

Thanks
Paul```

James_Thomlinso replied on 13-Mar-08 07:30 PM
```Check out this link...

http://exceltips.vitalnews.com/Pages/T002835_Rounding_Religious_Wars_Take_Two.html
--
HTH...

Jim Thomlinson```
Tyro replied on 13-Mar-08 07:34 PM
```Have you Googled ASTM 29 Rounding?    Excel is capable of rounding in
different ways. I am sure you can find one that is suitable to meed the
standard

Tyro```
Boni replied on 13-Mar-08 08:00 PM
```ASTM E29 - Rounding...
When the digit beyond the one you want to keep is less than 5, do not
change the digit you are keeping. When the digit beyond the one you want to
keep is greater than 5, increase the digit you are keeping by 1. When the
digit beyond the one you want to keep is equal to 5 and there are non-zero
digits beyond it, increase the digit you are keeping by 1. When the digit
beyond the one you want to keep is equal to 5 exactly, and the digit you
are keeping is odd, increase the digit you are keeping by 1. If the digit
you are keeping is even, keep it unchanged.

So, it doesn't...  use this formula:
=IF(A2-INT(A2)-0.5=0,EVEN(ROUNDDOWN(A2,0)),ROUND(A2,0))
to round to whole numbers.

If you want decimal places... it gets more complicated.
Good luck!```
Ron Rosenfeld replied on 13-Mar-08 08:50 PM
```Excel does not, but I believe VBA does.  If it does, then you could use this
UDF:

To enter the UDF, <alt-F11> opens the VBEditor.  Ensure your project is
highlighted in the Project Explorer window, then Insert/Module and paste the
code below into the window that opens.

To use this, enter the formula

=bRound(num, numdigits)

into some cell where num is either the number you want to round, or a cell
reference containing that number; numdigits is the number of decimals to round
to (0 by default).

=========================
Function bRound(num As Double, Optional numdigits As Long = 0) As Double
bRound = Round(num, numdigits)
End Function
==========================================

--ron```
Anon replied on 17-Mar-08 06:03 PM
```Thanks everyone- lots to study!

Thanks again!```
post_a_repl replied on 19-Mar-08 04:42 AM
```I think you will get more consistent results from the code I published at

Things my code fix are
- VBA Round function does not support rounding to negative digits
(multiples of 10)
- VBA Round function does not handle slight discrepancies in the binary
value, e.g. 1110*00.865 = 96.015, but =bRound(1110*00.865,2) returns 96.01

As a historical question, does anyone have evidence that ASTM rounding has
ever been a standard in banking?  Barring that, does anyone know how this
came to be called "banker's rounding" in some circles?

Jerry```
post_a_repl replied on 19-Mar-08 04:47 AM
```The information is somewhat dated.  While rounding ties to an even rounded
number remains the standard from ASTM and most other (non-financial)
standards bodies that explicitly specify how to round, ANSI Z25.1 was
withdrawn so long ago that the ANSI bookstore still has not been able to tell
me when, despite having had a couple of days to research it.

Jerry```
Ron Rosenfeld replied on 19-Mar-08 09:01 AM
```Thanks for adding that.
--ron```
Ron Coderre replied on 19-Mar-08 09:31 AM
```Per wikipedia:
method was ever a standard in banking, the evidence has proved extremely
difficult to find. To the contrary, section 2 of the European Commission
report 'The Introduction of the Euro and the Rounding of Currency Amounts'
suggests that there had previously been no standard approach to rounding in
banking."

--------------------------

Best Regards,

Ron
Microsoft MVP (Excel)
(XL2003, Win XP)```