komma nach punkt geht, punkt nach komma nicht! warum?

Registrierer

Erfahrenes Mitglied
Hab mir einen Zinsrechner gebastelt, die Eingabe erfolgt mit Komma, wird zum Rechnen in Punkt gewandelt und soll als Kommazahl wieder ausgegeben werden.

Komma nach Punkt geht, aber warum nicht Punkt in Komma?

HTML:
<html><head>
<script language="JavaScript" type="text/javascript">
  function fvzinsrechner() {
    var vforderung, vz_satz, vzins, vzinsen;
    vforderung  = document.verzugszinsenrechner.forderung.value;
    vz_satz     = document.verzugszinsenrechner.z_satz.value;
    vdauer      = document.verzugszinsenrechner.dauer.value;
    vzins       = vforderung;
    vzinsen     = vforderung /100 * vz_satz.replace(",", ".") * vdauer/360;
    vzinsen     = Math.round(vzinsen * 100) / 100;
    vzinsen     = vzinsen.replace(".",",");
    document.verzugszinsenrechner.zins.value = vzinsen;
  }
</script>
</head><body>
<pre>
<form name="verzugszinsenrechner" action="" method="">
  Forderung:  <input type="text" name="forderung" value="50000">
  Zinssatz:   <input type="text" name="z_satz" value="5">
  Tage        <input type="text" name="dauer" value="30">
  Zinsen:     <input type="text" name="zins" value="">
  <input type="button" name="" onclick="fvzinsrechner()" value="Berechnen">
</form>
</pre>
</body></html>
 
Hallo!

Komma nach Punkt geht, [...]
Bist Du Dir da sicher?
Bei mir kommt "NaN" (Not a Number) im Ergebnisfeld.

[...] aber warum nicht Punkt in Komma?
replace() muss auf eine Zeichenkette (String) angewendet werden.
Dafür gibt es toString().....
HTML:
<html><head>
<script language="JavaScript" type="text/javascript">
  function fvzinsrechner() {
    var vforderung, vz_satz, vzins, vzinsen;
    vforderung  = document.verzugszinsenrechner.forderung.value;
    vz_satz     = document.verzugszinsenrechner.z_satz.value;
    vdauer      = document.verzugszinsenrechner.dauer.value;
    vforderung  = vforderung.replace(",", ".");
    vzins       = vforderung;
    vzinsen     = vforderung /100 * vz_satz * vdauer/360;
    vzinsen     = Math.round(vzinsen * 100) / 100;
    vzinsen     = vzinsen.toString(10);
    vzinsen     = vzinsen.replace(".",",");
    document.verzugszinsenrechner.zins.value = vzinsen;
  }
</script>
</head><body>
<pre>
<form name="verzugszinsenrechner" action="" method="">
  Forderung:  <input type="text" name="forderung" value="50000">
  Zinssatz:   <input type="text" name="z_satz" value="5">
  Tage        <input type="text" name="dauer" value="30">
  Zinsen:     <input type="text" name="zins" value="">
  <input type="button" name="" onclick="fvzinsrechner()" value="Berechnen">
</form>
</pre>
</body></html>

Gruss Dr Dau
 
Tschuldige, falsche Version kopiert.
HTML:
<html><head>
<script language="JavaScript" type="text/javascript">
  function fvzinsrechner() {
    var vforderung, vz_satz, vzins, vzinsen;
    vforderung  = document.verzugszinsenrechner.forderung.value;
    vz_satz     = document.verzugszinsenrechner.z_satz.value;
    vdauer      = document.verzugszinsenrechner.dauer.value;
    vzins       = vforderung;
    vzinsen     = vforderung /100 * vz_satz.replace(",", ".") * vdauer/360;
    vzinsen     = Math.round(vzinsen * 100) / 100;
    vzinsen     = vzinsen.replace(".",",");
    document.verzugszinsenrechner.zins.value = vzinsen;
  }
</script>
</head><body>
<pre>
<form name="verzugszinsenrechner" action="" method="">
  Forderung:  <input type="text" name="forderung" value="50000">
  Zinssatz:   <input type="text" name="z_satz" value="5">
  Tage        <input type="text" name="dauer" value="30">
  Zinsen:     <input type="text" name="zins" value="">
  <input type="button" name="" onclick="fvzinsrechner()" value="Berechnen">
</form>
</pre></body></html>
Diese Zeile:
HTML:
vzinsen     = vzinsen.replace(".",",");
sollte eigentlich den Punkt wieder in ein Komma wandeln.

Wenn ich die Zeile entferne funktioniert das Script, mit dieser Zeile nicht.
 
Tschuldige, falsche Version kopiert.
Ich sehe da jetzt spontan keinen Unterschied zu dem von Dir zuerst geposteten Code.

sollte eigentlich den Punkt wieder in ein Komma wandeln.
Schon Klar, nur funktioniert es so nicht, da es kein String ist (s.o.).

Wenn ich die Zeile entferne funktioniert das Script, mit dieser Zeile nicht.
Habe ich auch festgestellt.

Dir ist aber schon aufgefallen dass ich einen (geänderten) Code gepostet habe?
Selbiger hat bei mir mit und ohne Dezimalstellen funktioniert..... sowohl mit einem Punkt als auch einem Komma als Dezimaltrennzeichen.
Und das Ergebnis wird mit Komma angezeigt..... ;)
 
Zurück