CONCLUSIONS ON THE ROUNDING ISSUE:

I spent about 16-20 hours looking on the web for stuff about rounding. I found 8 rounding modes. One of them is called "Round-half-up" and is also known as "conventional rounding". This is the one that Oracle and I use.

I discovered that countries, government agencies, and corporations all do rounding in different ways. The reason: they want to handle MONEY in the manner that best suits them. Therefore, there is no "standard" accounting method of rounding.

The programming solution is:

Find out if the project has any special rounding or truncating requirements. If so, get specific, detailed specifications, and write special functions accordingly.

If not, obtain written authorization, and use Oracle's "conventional rounding" function, as follows:

DEF FNround# (m#) = SGN(m#) * INT(ABS(m#) + .5)

Never use CINT, FIX, or INT for the purpose of rounding. They use non-conventional rounding rules.

--- EDIT ---------------------------------------

BTW: Here's 8 rounding methods that I was able to find:

1] Round-half-even: AKA Bankers Rounding, AKA odd/even rule, AKA in the USA as round-to-nearest for certain applications. This rounds 2.5 to 2, and 3.5 to 4.

2] Round-half-up: AKA conventional rounding, AKA arithmetic rounding, AKA round-to-nearest in Europe, International Finance, and in the US for taxes, particularly the IRS. This rounds 2.5 to 3. We will also call this "The Oracle method".

3] Round-down: AKA truncate. Did find some obscure usages. This rounds 1.9 to 1.

***For the following 5 types, found no usages:

4] Round-ceiling: towards + infinity

5] Round-floor: towards - infinity

6] Round-up: 1.1 goes to 2.

7] Round-half-down: Similar to Round-half-up by .5 goes down.

8] Multistep-gradual-rounding: by IEEE

*****