Wie implementiert man eine Umrechnung von mehreren Währungen gleichzeitig?
- Grundidee und Anforderungen
- Schritt 1: Wechselkurse beschaffen
- Schritt 2: Datenstruktur und Umrechnungskonzept
- Schritt 3: Implementierung in JavaScript (Beispiel)
- Schritt 4: Fehlerbehandlung und Erweiterungen
- Zusammenfassung
Grundidee und Anforderungen
Eine Anwendung zur Umrechnung mehrerer Währungen gleichzeitig erlaubt es, einen bestimmten Betrag in einer Ursprungswährung in verschiedene Zielwährungen umzuwandeln. Die Grundlage dieser Funktionalität sind aktuelle Wechselkurse zwischen Währungen, die möglichst zuverlässig und zeitnah abgerufen werden sollten. Die spätere Umsetzung erfolgt meist in einer Programmiersprache wie JavaScript, Python oder Java, häufig in Kombination mit APIs von Anbietern wie fixer.io, ExchangeRate-API oder Open Exchange Rates.
Schritt 1: Wechselkurse beschaffen
Damit eine automatische und aktuelle Umrechnung erfolgen kann, benötigt man Zugriff auf externe Datenquellen, sogenannte APIs, die den aktuellen Wechselkurs zwischen Währungen liefern. Alternativ kann man eine eigene Datenbank mit festen Kursen pflegen, diese werden aber schnell veralten und sind nicht für produktive Anwendungen empfehlenswert.
Beim Abruf solcher Kurse gibt es meist zwei Varianten: Zum einen kann man einen Basiswährungs-Kurs erhalten, der Umrechnungskurse aller verfügbaren Währungen in Relation zu einer Basiswährung (meist USD oder EUR) enthält. Zum anderen kann man bei flexiblen APIs auch direkt spezifische Währungspaare anfragen, was sich aber bei vielen Zielwährungen als aufwendiger herausstellt.
Schritt 2: Datenstruktur und Umrechnungskonzept
Um eine einfache Umrechnung durchzuführen, empfiehlt es sich, alle Wechselkurse relativ zu einer einheitlichen Basiswährung vorliegen zu haben. Dadurch kann man Beträge aus der Ursprungswährung zunächst in die Basiswährung umrechnen und anschließend in jede Zielwährung. Bei Nutzung von Basis-zu-alle-Kursen ist dies direkt möglich.
Mathematisch: Wenn amount der Betrag in der Ausgangswährung W1 ist, und die Wechselkurse sind definiert als:
rate(W1 → Basis) und rate(Basis → W2), dann gilt:
amount_in_Basis = amount / rate(W1 → Basis)amount_in_W2 = amount_in_Basis * rate(Basis → W2)Je nach API kann dies zu etwas anderen Berechnungen führen, manchmal erhält man den Kurs direkt als rate(W1 → W2).
Schritt 3: Implementierung in JavaScript (Beispiel)
Ein Beispiel mit einer Fetch-API, die Wechselkurse aus einer zentralen Quelle lädt, sieht so aus:
async function fetchExchangeRates(base = EUR) { const response = await fetch(`https://api.exchangerate-api.com/v4/latest/${base}`); if (!response.ok) { throw new Error(Wechselkurse konnten nicht geladen werden); } const data = await response.json(); return data.rates; // Objekt mit { "USD": 1.1, "GBP": 0.9, ... }}async function convertMultipleCurrencies(amount, fromCurrency, targetCurrencies) { // Wechselkurse mit Basis "fromCurrency" laden const rates = await fetchExchangeRates(fromCurrency); const result = {}; targetCurrencies.forEach(target => { if (target === fromCurrency) { result = amount; // gleiche Währung, keine Umrechnung nötig } else if (rates ) { result = amount * rates ; } else { result = null; // Keine Kursdaten vorhanden } }); return result;}// BeispielnutzungconvertMultipleCurrencies(100, EUR, ).then(console.log);// Ausgabe könnte sein: { USD: 110, GBP: 90, JPY: 13000 }Dieses Beispiel ruft die aktuelle Kurs-Tabelle ab, deren Basis die Ursprungswährung ist. Anschließend werden für jede gewünschte Zielwährung die Umrechnung durchgeführt und als Objekt zurückgegeben.
Schritt 4: Fehlerbehandlung und Erweiterungen
In einer echten Anwendung sollten Sie auf Fehler beim Laden der API achten, auf nicht verfügbare Währungen und auch auf Netzwerkprobleme. Außerdem kann ein Zwischenspeichern (Caching) der Kurse sinnvoll sein, um API-Limits zu schonen und die Performance zu verbessern. Auch eine UI, die Benutzereingaben zulässt und Ergebnisse übersichtlich darstellt, gehört meist dazu.
Zusammenfassung
Die Umrechnung von mehreren Währungen gleichzeitig lässt sich gut realisieren, indem man aktuelle Wechselkurse zentral von einer API abruft und alle Zielwährungen in relation zu einer Basiswährung berechnet. Die Programmierung umfasst den Datenabruf, die Umrechnung, die Aufbereitung der Ergebnisse und eine robuste Fehlerbehandlung. Mit modernen Web-Technologien und zuverlässigen Kursquellen sind solche Umrechner auch für den produktiven Einsatz einfach umsetzbar.
