Are you sure that rounding was broken? Many systems use “Gaussian” or “banker’s” rounding to reduce accumulation of rounding errors. Instead of always rounding to the next larger absolute value at .5, they round to the nearest even number. Although it introduces a bias toward even numbers in the result set, it reduces accumulation of error when .5 is as likely as as any other fraction and odd/even are equally likely in the source.

I was taught “banker’s” rounding in school (graduated 1974) and have had to implement it a few times to reduce error accumulation.

If you are looking for a rabbit hole, Wikipedia has a pretty comprehensive article, including an example of how the wrong choice of rounding algorithm led to massive problems at the Vancouver Stock Exchange (Canada).

RapidQ integer rounding was totally broken, so I wrote this…

Are you sure that rounding was broken? Many systems use “Gaussian” or “banker’s” rounding to reduce accumulation of rounding errors. Instead of always rounding to the next larger absolute value at .5, they round to the nearest even number. Although it introduces a bias toward even numbers in the result set, it reduces accumulation of error when .5 is as likely as as any other fraction and odd/even are equally likely in the source.

I was taught “banker’s” rounding in school (graduated 1974) and have had to implement it a few times to reduce error accumulation.

If you are looking for a rabbit hole, Wikipedia has a pretty comprehensive article, including an example of how the wrong choice of rounding algorithm led to massive problems at the Vancouver Stock Exchange (Canada).

deleted by creator