Here's a little mathematical fact that may amuse the reader. I thought about this some time ago, and was reminded of it while proving some statements about “weak approximation” today.

Start with a concrete case: on 2002-01-01, various European
countries switched to a new currency, the euro. Exchange rates had
been fixed several months earlier, by defining the euro's value as an
exact number of the various earlier currencies (deutschemarks, liras,
French francs and so on), these numbers being the then market exchange
rate with six significant digits. For example, the euro was defined
as (exactly) 6.55957 French francs. Naturally, this makes the French
franc equal to approximately 0.152449 euro(s); however, in that
direction, the ratio is not exact, because it is even more precisely
0.15244902 euro(s), and even that is not exact (though at that point,
the further decimals become quite meaningless, but we are interested
in mathematics, so we can't call it *exact*).

Call a number decimal iff it can be written with a finite (that is, ending) number of digits after the decimal point; in other words, it can be written as the quotient of an integer by some power of ten (as in: 6.55957 = 655957/100000). For example, 1/2 (one half) is a decimal number because it is 0.5 (or 5/10), and so is 1/5, but 1/3 and 1/7 are not decimal numbers (although they are, of course, rational numbers). So the value of the euro in all of the former European currencies was defined exactly as a decimal number (the euro's value in French francs, 6.55957, is decimal); on the other hand, the value of the currencies in euro(s) is not decimal (for example, 1/6.55957 is not decimal, because 0.152449 or 0.15244902 are only approximations, and no finite number of digits will give an exact value). This can be annoying (in practice it never is, or was, a problem, but assume for the sake of argument that it is).

Now call a number bidecimal iff it is decimal and its
*reciprocal* (or “inverse”, that is, one divided by
that number) also is a decimal number. There exist bidecimal numbers:
for example, 4 is a bidecimal number, because 4 is decimal (as are all
integers) and 1/4=0.25 is also decimal. Similarly, 1.25 is bidecimal
(its reciprocal is 0.8). Now assume we had wanted the currency rates
in *both directions* (the euro's value in the former currencies
and the former currencies' value in euro(s)) to be decimal: in other
words, for the currency rates to be bidecimal. Could we have done
this? Of course, it is not the matter of picking an arbitrary
bidecimal number: the fixed chosen currency rates need to be very
close to the market rates at fixation time. The question, then, is:
is it possible to find bidecimal numbers that are arbitrarily close to
any given number? Or, in mathematical terminology: are the bidecimals
*dense* in the real numbers? And the answer is
**yes**. If it had been desirable to make the currency
rates bidecimal, that could have been done while keeping adequation to
an arbitrary precision with the market rates of the day. For
instance, one can find a bidecimal number which is between 6.559565
and 6.559575, thus being close to 6.55957; or between 6.5595695 and
6.5596705; or to any desirable precision. I'm not claiming, though,
that to fix the rate's approximation of market rates to six
significant figures we need only six digits in the bidecimals!
Actually, a bidecimal number between 6.559565 and 6.559575 needs quite
an impressive number of digits to be written exactly (or its inverse);
but it can be done.

As for why that wasn't done in practice, the last sentence above is the answer. But it is an amusing mathematical curiosity. I'll let the mathematically inclined reader figure out the proof.

Note that it doesn't work in binary, for instance: can you explain why that is?