ROUNDING IN EXCEL

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
 
T

Tyro

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
 
B

BoniM

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

Ron Rosenfeld

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
 
A

Anon

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
 
J

Jerry W. Lewis

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
 
J

Jerry W. Lewis

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
 
R

Ron Rosenfeld

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
 
R

Ron Coderre

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)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top