The Systems Developer's Guide to the Euro Content from the guide to life, the universe and everything

The Systems Developer's Guide to the Euro

1 Conversation

On 1 January, 1999, 11 currencies1 fixed their exchange rates against a new currency unit - the Euro.

The fixed rates are:

1Euro is
40.3399Belgian Franc
1.95583German Mark
166.386Spanish Peseta
6.55957French Franc
0.787564Irish Pounds
1936.27Italian Lira
40.3399Luxembourg Franc
2.20371Dutch Guilder
13.7603Austrian Schilling
200.482Portuguese Escudo
5.94573Finnish Markka
340.750Greek Drachma

This was phase one of the European Monetary Union (EMU) and the birth of the currency called the Euro.

On 1 January, 2002, the currencies listed above will cease to exist. This means that all transactions, prices and values expressed in these currencies must be converted such that they are expressed in Euros.

Conversion Rules

  1. Single rate - The rule is that the above rate must be used regardless of whether you are converting to or from Euros - the inverse rate may not be used. Thus, to convert from Irish pounds to Euro, divide by 0.787564. To convert from Euro to Irish pounds, multiply by .787564.

  2. Precision - Six digit precision must be used in all Euro conversions.

  3. Rounding - After conversion to Euros, the result must be rounded to the nearest cent. A cent is one hundredth of a Euro - thus the post conversion precision is two digits.

  4. Triangulation - All currency conversions to or from a member currency must be converted through the Euro - this process is known as triangulation. Thus, to convert from Deutschmarks to US dollars, an amount must first be converted to Euros (according to rules 2.1 to 2.3) and then this resulting amount converted to US dollars.

Practical considerations for developers

These rules lead to the following practical considerations:

  1. Storing the conversion rates - The rates above are fixed and immutable. This means that you can hard code them in a program if this suits your development environment (although it is probably better to store them in a database table to allow them to be accessed elsewhere). However you store the rate, the data type of the variable must allow six-digit precision.

  2. Performing the conversion - As above, any interim store, variable or function used to perform a Euro conversion must be capable of at least six digits of precision. In Visual Basic (and by extension, Visual Basic for Applications) this means that you must not store any calculations as a Currency, Integer or Long Integer variable types and that conversions to/from these data types must not be part of the conversion routine. In SQL, the data types MONEY and SMALLMONEY must be avoided.

  3. Post conversion rounding - Rounding is to two digits, where anything with a third significant digit of less than 5 is rounded down and 5 or more is rounded up. For the most part any system defined conversion 2 will already do this - but you should check any rounding functions (implicit or explicit) in your programs.

  4. Triangulation - The currencies within the Euro zone (noted above) should be known to your systems and any conversion to or from them should be done in two steps. First convert to Euros, then convert to your target currency.

  5. Timetable - Like Y2K, this is another IT problem with a hard deadline. If your systems are not Euro-enabled by 1 January, 2002, you will not be able use them to trade in the Euro zone. If you aren't working on this right now, get started.

1The Greek Drachma joined later.2For example, CONVERT(MONEY,@value) in SQL or Format$(vValue,"Fixed") in Visual Basic.

Bookmark on your Personal Space

Conversations About This Entry

Edited Entry


Infinite Improbability Drive

Infinite Improbability Drive

Read a random Edited Entry

Categorised In:

Written by

Write an Entry

"The Hitchhiker's Guide to the Galaxy is a wholly remarkable book. It has been compiled and recompiled many times and under many different editorships. It contains contributions from countless numbers of travellers and researchers."

Write an entry
Read more