I think it’s based on an old programming UL.
In COBOL there are two ways to perform division (the capitalized words are the COBOL commands, the lower case words are just names given to fields):
COMPUTE quotient = dividend / divisor [ROUNDED]
or
DIVIDE divisor INTO dividend GIVING quotient REMAINDER extra-stuff
If you use the first method, there is no way to select or store any “remainder”. The machine simply records the single answer that it arrives at. Depending on the particular hardware/operating system/compiler you use, there may or may not be automatic rounding or truncation. (The extra ROUNDED keyword forces that issue.) Generally when rounding, if you are using a quotient field defined with two decimal positions, and you divide 1.00 by 3, you will get the answer .33 while if you divide by 6 you will get $.17. This simply follows a basic rule that if the digit after the last significant digit is less than 5, round down, otherwise, round up.
The bank can’t touch the .0033333333333… using the first method because it does not exist. The machine did away with it to satisfy the two-digit decimal answer.
However, looking at the second answer, we find a method to store the remainder. It does not go away. The story goes that the DIVIDE verb preceded the COMPUTE verb when COBOL was developed and some larcenous programmer wrote all his routines using the REMAINDER option, then wrote a routine to accumulate the values in the remainder field and transfer them to his account each evening.
While grabbing one hundred thousandth of a cent on various transactions would not garner the bank even a rounding error on their books, it could, conceivably, bring in a tidy sum for an individual.
I have never had much faith in the story, myself. It seems more like an example of some new coder asking out loud whether anyone else had thought of it, which led to stories that it had happened.
My problem with the story is that auditors are programmers (usually young ones) and I would expect anyone who tried this to get nailed rather quickly. And of course, few of us can arrange that no other programmer will ever pull maintenance on one of our programs. How long could the code stay there before the guy was caught?
It could have happened, but I have never seen names or dates.
Tom~