JavaScript: Kommazahlen berechnen
Jan Lagerpusch
0 Fredy0 Stefan Muenz
hallo!
ich möchte gerne fuer eine lösung ähnlich eines shops preise, die aus einer datenbank kommen (und dort natürlich mit 2 dezimalstellen hinter dem KOMMA gespeichert sind) in javascript weiterverarbeiten.
der benutzer kann diese dann selbst verändern, um sie anzupassen. anschliessend soll eine berechnung ueber menge und preis der artikel durchgeführt werden.
das problem ist natürlich, daß bei javascript-berechnungen alle zahlen mit punkt statt komma ausgestattet sein müssen.
gibt es eine einfache möglichkeit, das komma vor der berechnung durch den punkt zu ersetzen, die berechnung durchzuführen und dann die ersetzung in umgekehrter richtung zu machen und den preis auszugeben?
oder geht es einfacher?
vielen dank schonmal
jan lagerpusch (ich glaub, meine shift-taste ist kaputt... ein glück, daß ich ASCII-Codes für klammer auswendig kann :) )
Hallo!
Du kannst dies mit einem regulären Ausruck lösen.
Ich glaube der Syntax lautet so:
zahl.replace(/,/,".");
vielleicht kannst du anstatt "," auch nur
"," schreiben, näheres in SELFHTML unter
JavaScript, String-Objekt
Hallo Jan
gibt es eine einfache möglichkeit, das komma vor der berechnung durch den punkt zu ersetzen, die berechnung durchzuführen und dann die ersetzung in umgekehrter richtung zu machen und den preis auszugeben?
Eine Loesung mit neueren JavaScript-Befehlen hat Dir Fredy ja schon genannt. Ich selber benutze zum Suchen und Ersetzen in JavaScript-Zeichenketten immer noch gern eine alte Funktion, die ich irgendwann mal geschrieben habe. Hier ein Komplettbeispiel, wie man die Funktion, die allgemein geschrieben ist und sich ueberall einsetzen laesst, im Zusammenhang mit Formulareingaben nutzen kann - vielleicht kannst Du aus dem Beispiel ja was brauchen fuer Dich:
<html>
<head>
<title>Suchen und Ersetzen</title>
<script language="JavaScript">
<!--
function SucheErsetze(Text,Suche,Ersetze)
{
var Neutext = "";
var i = 0;
while(i < Text.length)
{
if(Text.substring(i,i + Suche.length) == Suche)
{
Neutext = Neutext + Ersetze;
i = i + Suche.length - 1;
}
else
Neutext = Neutext + Text.substring(i,i + 1);
i++;
}
return Neutext;
}
// -->
</script>
</head>
<body bgcolor=E0E0E0>
<form name="Test">
<pre><b>
Eingabetext: <input size=50 name="Eingabetext">
Suche nach: <input size=10 name="Suchtext">
Ersetze durch: <input size=10 name="Ersatztext">
Ergebnistext: <input size=50 name="Ausgabetext"><p>
<input type=button value="Suchen/Ersetzen"
onClick="document.Test.Ausgabetext.value =
SucheErsetze(document.Test.Eingabetext.value,document.Test.Suchtext.value,do
cument.Test.Ersatztext.value)">
</b></pre>
</form>
</body>
viele Gruesse
Stefan Muenz