ROUNDING IN EXCEL

  • Thread starter Thread starter Anon
  • Start date Start date
A

Anon

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
 
Have you Googled ASTM 29 Rounding? Excel is capable of rounding in
different ways. I'm sure you can find one that is suitable to meed the
standard

Tyro
 
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!
 
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

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
 
Thanks everyone- lots to study!

Thanks again!


Ron Rosenfeld said:
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
 
I think you will get more consistent results from the code I published at
http://groups.google.com/group/microsoft.public.excel.charting/msg/107fce6145b70d69

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
instead of 96.02

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
 
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
 
I think you will get more consistent results from the code I published at
http://groups.google.com/group/microsoft.public.excel.charting/msg/107fce6145b70d69

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
instead of 96.02

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

Thanks for adding that.
--ron
 
Per wikipedia:
"The origin of the term bankers' rounding is more obscure. If this rounding
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)
 
Back
Top