Mh...
Ich kann Dir nicht versprechen, dass es geht. Ist nur mal eben zusammengezimmert ...
Code:
<script language="JavaScript" type="text/javascript">
<!--
var p = "2,10";
p = p.split(',');
p = p.join('');
var b = "5,00";
b = b.split(',');
b = b.join('');
var w = b-p;
var mu = true;
var zwei = true;
var eins = true;
var fuenfzig = true;
var zwanzig = true;
var zehn = true;
var fuenf = true;
var nullzwei = true;
var nulleins = true;
while(w > "0") {
w--;
mu++;
if(mu == "200") {
zwei++;
mu = "0";
}
if(mu == "100") {
eins++;
mu = "0";
}
if(mu == "50") {
fuenfzig++;
mu = "0";
}
if(mu == "20") {
zwanig++;
mu = "0";
}
if(mu == "10") {
zehn++;
mu = "0";
}
if(mu == "5") {
fuenf++;
mu = "0";
}
if(mu == "2") {
nullzwei++;
mu = "0";
}
if(mu == "1") {
nulleins++;
mu = "0";
}
}
document.write("Wechselgeld: "+zwei+" Zwei EuroStuecke");
//-->
</script>
Das ist auch eher provisorisch und sehr einfach, da ich gerade wenig Zeit habe.
Vom Prinzip her denke ich, ist es das einfachste: Du rechnest die Eurobeträge (mit den Kommata) in Centbeträge (ohne Kommata) um, indem Du einfach das Komma entfernst (mal 100 halt).
Danach rechnest Du die Differen, die hier 290 beträgt (500 - 210).
Die While-Schleife läuft nun 290 mal und zieht dem Wert (w) jeweils eins ab (w--) und rechnet auf mu (muenzen) eins dazu (mu++).
Wenn mu ganz genau gleich 200 dann rechnet sich zwei plus eins (zwei++). Das heißt, dass ein zwei Euro-Stück benötigt wird. Außerdem wird mu wieder auf 0 gesetzt, um erneut zu prüfen. Die 90 restlichen male wird geprüft, ob mu ganz genau 100 ist (was es nicht ist). Ist es ganz genau 50? Ja, nach 40 weiteren Durchläufen: Fuenfzig wird um eins erhöht (fuenfzig++). Dann noch 40 Durchläufe, wobei zweimal mu ganz genau 20 ist. Die Ausgabe müsstest Du dann noch Deinen Wünschen entsprechend anpassen. Ich käme somit auf 1*2€, 1*50 Cent und 2*20 Cent, was Du ja auch sagtest...
Korrekturen erwünscht, da nur mal eben prinzipiell zusammengezimmert .