mak_tha_Don: nur ein bestimmtes Zeichen aber das letzte ersetzen

Hallo,

ich soll ein Skript schreiben, einen Taschenrechner, bei dem der deutsche Standard als auch der englische Standard eingegeben kann und JavaScript trotzdem damit rechnen kann, also

z.B. wird einmal die Zahl 1.000.025,87 eingegeben und einmal die Zahl 1,000,025.86 und die sollen subtrahiert werden, also die zweite zahl von der ersten,  das sollen beide male eine_million_und_noch_irgendwas sein und am ende soll halt 0.01 rauskommen.

das problem ist halt dass javascript das komma nicht anerkennt. jetzt hab ich mir überlegt wie ich das zu realisieren hab :
1.schritt :
und zwar müsste ich mit lastIndexof() überprüfen wo das letzte Komma und wo der letzte Punkt steht, und das mit der höheren position ist meine dezimaltrennung, das heißt das müsste durch einen punkt ersetzt werden. ich wäre dann hier : 1,000,025.87 und 1.000.025.86

2.schritt :
jetzt müsste ich all die anderen kommas und punkte, falls es welche gibt, AUSSER das letzte, finden und die einfach löschen also ersetzen durch "" damit ich dann hier wäre : 1000025.87 und 1000025.86

ich denk mal der weg ist richtig und auch klar. mein hauptproblem liegt halt darin dass ich erst heute angefangen habe javascript zu erlernen und ich das skript so schnell wie möglich brauche. ich beschäftige mich schon den ganzen tag mit javascript, fühl mich aber nicht in der lage das problem in javascript zu lösen. in c++ hab ich das z.B. hinkriegt :)

ich wäre für jede hilfe dankbar

  1. Hallo mak,

    ich muss dich leider enttäuschen. Es geht so nicht und es kann nicht gehen.

    Nehmen wir einmal an, wir haben die Zahl 12,452. Im amerikanischen System ist das die Zahl 12452, im deutschen ist das die Zahl 12 + 452/1000. Woher soll der Taschenrechner denn wissen, welche dieser beiden Zahlen gemeint ist?

    Du musst eine Checkbox oder einen Radiobutton erstellen, in dem du  angibst, wie der Taschenrechner die Eingabe interpretieren soll. Wenn du diese Einstellung angibst, kannst du genauso verfahren wie bisher.

    Du kannst dann entsprechend nach Komma oder Punkt splitten und den letzten Eintrag umgekehrt und hast dann das Ergebnis.

    Grüße,

    Wolfram

    1. Hallo Wolfram,

      ich muss dich leider enttäuschen. Es geht so nicht und es kann nicht gehen.

      Das mußt Du mir erklären!!!

      Nehmen wir einmal an, wir haben die Zahl 12,452. Im amerikanischen System ist das die Zahl 12452, im deutschen ist das die Zahl 12 + 452/1000. Woher soll der Taschenrechner denn wissen, welche dieser beiden Zahlen gemeint ist?

      Gegenfrage: Woher weißt Du es?
      Und warum kann man die diese Fähigkeit nicht einer Maschine beibringen???

      Denk mal drüber nach!

      Gruß
      Reiner

      1. Nun ja,

        wenn du von Ulm nach Göttingen möchtest und du nicht weißt, welches Göttingen gemeint ist, wirst du vielleicht  falschen Göttingen ankommen, denn es gibt auch ein Göttingen in der nähe von Ulm.

        Dann hast du ein Problem.

        Grüße,

        wolke

    2. Nehmen wir einmal an, wir haben die Zahl 12,452. Im amerikanischen System ist das die Zahl 12452, im deutschen ist das die Zahl 12 + 452/1000. Woher soll der Taschenrechner denn wissen, welche dieser beiden Zahlen gemeint ist?

      Ich denke mal da wird dann die Zahl 12452 gemeint sein, weil es sich hier um Geldbeträge handelt, die nur 2 Stellen nach dem Komma haben. Auch wenn das nicht der Fall sein sollte, soll ich für meinen Chef das Programm schreiben.

      Kann mir grad jemand sagen wie ich wenn ich die Position eines Zeichens in einer Zeichenkette kenne, wie ich NUR das ersetze.
      also wie folgt :
      var Kommasuche = Zahl1.lastIndexof(",");  //Hier krieg ich die Position raus wo das letzte "," liegt
      var Zahl_1 = Zahl1.replace(/,/,"."); //Hier soll er mir eigentlich nur das "," in der Position die in der Variable Kommasuche steckt, ersetzen, das klappt aber nicht so wie ich das hab