Normlerweise castet JavaScript die Daten richtig in den entsprechenden Typ. Du kannst aber mal einen expliziten Cast versuchen. Ich glaube das sähe so aus:
document.forms[0].EurLamph.value = Cdouble(document.forms[0].Lamph.value) * Cdouble(document.forms[0].localFactor.value) ;
Danach mußt du aber noch das ungenaue Fliesskomma-Ergebnis auf 2 Stellen hinter KOmma runden.
Mit Punkt geht es:
<html>
<script>
simpleMath1 = 2.45 * 2;
alert ("simpleMath1=" + simpleMath1);
simpleMath2 = "2.45" * "2";
alert ("simpleMath2=" + simpleMath2);
</script>
</html>
Da stellt sich die Frage, ob man nicht in Notes gleich ein Textfeld verwendet.
Wieso?
if (document.forms[0].Lamph.value > 0)
{
if (document.forms[0].Waehrung.value == "GBP")
{
alert ("Wir sind in GB") ;
// Der Wert Lamph wird vom Benutzer eingegeben, der localFactor wird aus einem Profildokument ausgelesen.
// In diesem Wert steht z. Zt. die 1,45
// Wenn der Wert "localFactor" einen ganzzahligen Wert hat, wird alles richtig ausgerechnet und auch gespeichert
valUS = document.forms[0].Lamph.value * formatUS(document.forms[0].localFactor.value) ;
document.forms[0].EurLamph.value = formatGerman(valUS);
}
function String formatUS(String input) {
return input.replace(/,/, ".");
}
function String formatGerman(String input) {
return input.replace(/./, ",");
}
nicht getestet.
Ich würd die Funktionen formatUS und formatGerman nicht zu einer Funktion verdichten (was möglich wäre), da dies vermutlich unübersichtlich ist. formatUS und formatGerman sind klare Namen.
Besser vielleicht noch formatDecimalSeperatorUS und formatDecimalSeperatorGerman.