[AccessD] Rounding with CCur conversion

Bobby Heid bheid at sc.rr.com
Sun Jun 1 17:48:07 CDT 2008


Ahhh, sorry, I did not catch the "Type" of rounding part of the question.

Bobby

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Asger Blond
Sent: Sunday, June 01, 2008 6:18 PM
To: 'Access Developers discussion and problem solving'
Subject: Re: [AccessD] Rounding with CCur conversion

Hi Bobby,

I'm aware that currency rounds to 4 decimal. My question last month was:
what kind of rounding?

Try this:
?Round(1.11125,4) --> 1.1112 (Banker's rounding)
?CCur(1.11125) --> 1.1113 (Arithmetic rounding)
?CCur(111.11115) --> 111.1111 (for sure neither Banker's nor Arithmetic, so
what beast is this, if not a bug?)

Also, I'm astonished to note the lack of standards for financial roundings
between programming languages. I would expect T-SQL (MS SQL Server) to use
Banker's rounding for the money data type. But in fact it uses Arithmetic
rounding: SELECT CAST('1.11125' AS money) --> 1.1113

Doesn't this long aged capitalistic world have some kind of standard
(ANSI/ISO) for financial rounding of the 4th decimal? If not, I finally got
an explanation why my bank account is so unpredictable...

Asger




-----Oprindelig meddelelse-----
Fra: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] På vegne af Bobby Heid
Sendt: 1. juni 2008 01:22
Til: 'Access Developers discussion and problem solving'
Emne: Re: [AccessD] Rounding with CCur conversion

Asger,

The currency type rounds to 4 decimal places.

Bobby

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Asger Blond
Sent: Thursday, May 01, 2008 7:55 PM
To: 'Access Developers discussion and problem solving'
Subject: [AccessD] Rounding with CCur conversion

Hi group,

 

I just noticed that the algorithm in VB for rounding seems to be different
for the Round-function and the CCur-function.

The Round-function use "Banker's rounding", also known as "Dutch rounding".
The CCur-function behaves differently:

Round(1.11115,4) --> 1.1112

Round(11.11115,4) --> 11.1112

Round(111.11115,4) --> 111.1112

CCur(1.11115) --> 1.1112

CCur(11.11115) --> 11.1112

CCur(111.11115) --> 111.1111  ?!!

 

What's going on in the last conversion? Is this a bug or does the
CCur-function have a special algorithm?

 

TIA

Asger






More information about the AccessD mailing list