IEP 851.40 = EUR 1081.054999974605
The correct rounding is down to 1081.05
Some systems incorrectly round once to 1081.0550, (e.g.
because they store data to only 4 decimals) then round that again
- Validation Range
IEP 0.00-15.99 = EUR 0.00-20.30
IEP 16.00-32.00 = EUR 20.32-40.63
Note that there is no gap in the IEP range, but there is a
1c gap in the euro range.
EUR 20.31 = IEP 16.00
IEP 16.00 is one of the many "ambiguous" figures.
As part of a survey of accounting packages on sale in Ireland, I created a test scenario representing how a company would account for trading over the transition period. and applied it to three representative packages (single, dual, and multi-currency).
I identified a
failure in a commercial small & medium enterprise (SME)
accounting package that had received an industry euro
certification. Specifically, it converted EUR 39.00 to IEP 30.72 rather than
30.71 because it rounded the intermediate figure (30.714996)
twice - once to 30.715, then again to 30.72. This
"recursive" (iterative or repeated) rounding is
shown by more than an isolated incident - it happens in 50 price points under 100 euro or about 0.5% of cases. The suppliers fixed it free as part of normal update support.
A software tester needs to be like a sculptor or diamond cutter looking for the flaw line where a small tap cracks the whole thing open. I created tests based on the mathematics of the conversion between the euro and the Irish Pound. I emphasise that this is not the expected discrepancy from the "price accordion" (where price points in euro get squeezed out when represented in IEP) but the fact that crucial rounding boundaries were not covered in the test cases.
See the article “Trust, but Verify Euro Compliance” in the May 2000 issue of Euro-Impact magazine.