jhjp: Gesamtpreis berechnen

Hallo Leute,
ich hab ein großes Problem mit JavaScript.
Ich möchte gerne einen Online-Shop programmieren, bei dem die ganzen Artikel in eine Variable (Array-Objekt) geschrieben werden.
Alles kein Problem, aber als ich den Gesamtpreis berechnen lassen wollte, kam ich einfach nicht weiter.
Ich hab schon alles versucht, das ganze SELFHTML durchforstet aber ich weiß net was ich falsch mach.
Bitte helft mir!!!

Hier ist der vereinfachte Quellcode:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled</title>
</head>
<body>
<script language="JavaScript" type="text/javascript">
<!--
//shopy ist die Variable in die die ganzen Artikel geschrieben werden
var shopy = "";
//Jetzt wird vereinfacht ein Artikel hinzugefügt
shopy += "Roggenbrot|2.50|1#";
//Roggenbrot ist die Bezeichnung; 2.50 ist der Preis; 1 ist die Menge
shopy += "Bretzel|0.80|1#";

//Ich möchte jetzt nur die Preise addieren.
//1. shopy wird aufgeteilt:
//# Zeiche wird entfernt
var shopy2 = shopy.substring(0, shopy.length -1);
//Jetzt wird shopy bei den # Zeichen verschnitten und in order abgespeichert
order = shopy2.split("#");
//Jetzt wird shopy bei den | Zeichen ein weiteres Mal verschnitten
// und in dem jeweiligen order abgespeichert
for(i in order) order[i] = order[i].split("|");

//Ich möchte jetzt also order[0][1] und order[1][1] addieren
//Die Variable für den Gesamtpreis wird definiert
var gpreis = "";
gpreis = order[0][1] + order[1][1];
//Der Gesamtppreis soll dann im Beispiel als alert ausgegeben werden
alert(gpreis);
//Problem: er zeigt nicht 3.30 sondern 2.500.80 an
//Was muss ich verändern, dass er mir die zwei werte addiert!?!?!?
//-->
</script>
</body>
</html>

Meiner Meinung nach müsste ich nur irgendwie dem Rechner sagen, dass es sich bei order[0][1] um eine
piep normale Zahl handelt. oder?

Schon mal Vielen Dank für eure Hilfe.

jhjp

  1. Hi,

    //Ich möchte jetzt also order[0][1] und order[1][1] addieren
    gpreis = order[0][1] + order[1][1];

    Damit addierst Du sie als String-Variable: "2.50" + "0.80" ist "2.500.80".

    Was Du willst, ist dies:
    gpreis = Number(order[0][1]) + Number(order[1][1])

    Salokin

    1. VIELEN DANK!!!!!!!
      Jetzt funzts! Juhuuuuu

      cu jhjp

  2. Hi!

    So wie ich das jetzt sehe addiert dein Programm nur die Strings und nicht die Zahlen:
    String-Mode: "2.50" + "0.80" = "2500.80"
    Number-Mode: 2.50 + 0.80 = 3.30 (Das ist das was du haben willst)

    Da gibt's eine Funktion Number(), mit der es klappen müsste.
    Deine Zeile heißt dann folgendermaßen:

    ----------
    gpreis = Number(order[0][1]) + Number(order[1][1]);
    ----------

    siehe auch: http://selfhtml.teamone.de/javascript/objekte/unabhaengig.htm#number

    Viel Glück!

    Marc Reichelt || http://www.marcreichelt.de/

    --
    tel.: 0049/6181/72224
    fax.: 0049/6181/740724
    Linux is like a wigmam - no windows, no gates and an Apache inside!!!