Waehrungsumrechnung
Nico
- javascript
0 Thilo0 Swen
0 Michael Schröpl0 Nico
Hallo,
ich habe folgendes Problem, bei dem ich Euch um Hilfe bitte:
In eine Formular kann in einem Feld der Betrag in nationaler Waehrung eingegeben werden. Im naechsten Feld erscheint dann mittels Javascript der Betrag in EURO.
Das funktioniert solange relativ einfach, wie ich mich im Bereich fester Waehrungskurse befinde ( Kurse der Devisen der Laender, die der europ. Waehrungsunion angehoere), da ich diese Kurse als Value ein fuer allemal eingeben kann.
Was aber nun mit den uebrigen europaeischen Waehrungen (z.B. die der Schweiz, Griechenlands, Englands,...), deren Kurse im Vergleich zum EURO ja taeglich neu festgelegt werden? Kann ich irgendeinen Bezug herstellen zu einer (welcher?) Quelle im Internet, die mir die taeglichen Kurse der betreffenden Waehrungen mitteilt?
Wenn es eine solche anzapfbare Devisenkurs - Quelle gibt:
Wie baue ich sie in mein akuelles Script (siehe unten) ein?
Im voraus besten Dank fuer Eure Hilfe.
Gruss Nico
______________________________________________________
<html>
<head>
<title></title>
</head>
<table border="0" width="100%">
<tr>
<td width="12%">Preis</td>
<td width="12%"><select name="DEVISE" size="1">
<option value="1.95583">DM</option>
<option value="6.55957">FF</option>
<option value="40.3399">LUF</option>
<option value="40.3399">BEF</option>
<option value="2.20371">NLG</option>
<option value="166.386">ESP</option>
<option value="0.787564">IEP</option>
<option value="1936.27">ITL</option>
<option value="13.7603">ATS</option>
<option value="200.482">PTE</option>
<option value="5.94573">FIM</option>
</select></td>
<td width="12%"><input type="text" name="PREIS" size="6" onblur="DEVEURO();"></td>
<td width="12%"><input type="text" name="EURO" size="6"></td>
</tr>
</table>
<script language="JavaScript" type="text/javascript">
<!--
function DEVEURO()
{
document.FrontPage_Form1.EURO.value=Math.round(document.FrontPage_Form1.PREIS.value/document.Form1.DEVISE.value);
}
// -->
</script>
</body>
</html>
________________________________________________________________
Hallo!
Ich hab es mal neu geschrieben!
---schnipp---<html>
<head>
<title></title>
<script language="JavaScript">
<!--
function rechnen()
{
var preis = document.forms["euroform"].elements[1].value;
var kurs = document.forms["euroform"].elements[0].value;
var euro = Math.round(preis / kurs);
document.forms["euroform"].elements[2].value = euro;
}
//-->
</script>
</head>
<body>
<form name="euroform">
<table border="0" width="100%">
<tr>
<td width="12%">Preis</td>
<td width="12%"><select name="waerung" size="1">
<option value="1.95583">DM</option>
<option value="6.55957">FF</option>
<option value="40.3399">LUF</option>
<option value="40.3399">BEF</option>
<option value="2.20371">NLG</option>
<option value="166.386">ESP</option>
<option value="0.787564">IEP</option>
<option value="1936.27">ITL</option>
<option value="13.7603">ATS</option>
<option value="200.482">PTE</option>
<option value="5.94573">FIM</option>
</select></td>
<td width="12%"><input type="text" size="8" maxlength="8"></td>
<td width="12%"><input type="text" size="8" readonly> </td>
<td width="12%"><input type="button" value="Ausrechenen" onClick="rechnen()"></td>
<td width="12%"><input type="reset" value="Löschen"></td>
</tr>
</table>
</form>
</body>
</html>
---schnapp---
Thilo
Moin Thilo,
sorry, aber dein script gibt rechtlichen Unsinn als Ergebnis aus!
Die Rundungsregeln beim Umrechnen in Euro sind etwas komplizierter, als du (und Nico) sie verwirklichst. Gerundet wird _nur_ dann (und zwar auf 2 Nachkommastellen bei käufmannischer Rundung) wenn der Betrag zu zahlen oder zu buchen ist _und_ wenn beide Einheiten dem Eurogebiet angehören. Beim Umrechnen in Fremdwährungen (USD etc.) sind die jeweils einschlägigen nationalen Rundungsregeln zu beachten - und da kann es schon einen Unterschied machen, ob die Summe bar oder unbar zu zahlen ist.
Also: Runde am besten nie!
Einen Überblick findest du hier [link:http://europa.eu.int/euro/html/dossiers/00121/00121-de.pdf. Mehr dazu demnächst hier.
Swen
Was aber nun mit den uebrigen europaeischen Waehrungen (z.B. die der Schweiz, Griechenlands, Englands,...), deren Kurse im Vergleich zum EURO ja taeglich neu festgelegt werden?
Ein Währungsverhältnis ist im informationstechnischen Sinne auch nichts Anderes als ein Wertpapier: Es hat eine Wertpapier-Kennnummer und wird an verschiedenen "Börsen" gehandelt.
Üblicherweise sind es die großen Banken, welche solche Währungsverhältnisse berechnen - schau Dich mal auf deren Homepages mal um.
Dort, wo man Kurse von Wertpapieren per CGI-Anwendung etc. abfragen kann, sollte man auch auf Währungsverhältnisse zugreifen können, wenn man die WPKs kennt. Diese kann Dir notfalls Dein Bankberater sagen.
Kann ich irgendeinen Bezug herstellen zu einer (welcher?) Quelle im Internet, die mir die taeglichen Kurse der betreffenden Waehrungen mitteilt?
Wenn es eine solche anzapfbare Devisenkurs - Quelle gibt:
Ich würde mich mal auf den Homepages der Direktbanken umsehen - die werben massiv mit kostenlosen Mehrwertdienstleistungen in dieser Richtung. (Es könnte allerdings sein, daß Du dort bereits Deine komplette Lösung findest ... ;-)
Wie baue ich sie in mein akuelles Script (siehe unten) ein?
Mit einer CGI-Anwendung in Perl würde ich folgendes tun:
1. URL der Auskunftsseite um WPK ergänzen, Dokument mit LWP::Simple absaugen.
2. Dokument parsen - dazu mußt Du das Aussehen dieses Dokument sehr genau kennen (und ggf. den Parser anpassen, wenn sich dieses Aussehen ändert).
Inwiefern das beides auch mit JavaScript geht, bin ich mir nicht sicher.
Vom Konzept her entspricht Dein Problem übrigens genau demjenigen einer Meta-Suchmaschine.
Hallo Michael, Thilo und Swen,
besten Dank fuer Eure Hilfestellung, die mir einige gute Ideen zur Loesung meines Problems gegeben hat. Mal sehen ob's klappt.
Beste Gruesse
Nico