Paul: Komma durch Punkt ersetzen

Moin,
ich habe ein array (dynamisch aus einer DB erzeugt). Darin stehen Zahlenwerte mit Nachkommastellen. Nun muss ich die Kommas durch Punkte ersetzen. Dies kann ich aber leider erst in JS machen, da die Daten vorher noch mit dem Komma als Trennzeichen verarbeitet werden.

Danke,
Paul

  1. hi,

    ich habe ein array (dynamisch aus einer DB erzeugt). Darin stehen Zahlenwerte mit Nachkommastellen. Nun muss ich die Kommas durch Punkte ersetzen. Dies kann ich aber leider erst in JS machen, da die Daten vorher noch mit dem Komma als Trennzeichen verarbeitet werden.

    Erlaubnis erteilt.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Erlaubnis erteilt.

      HÄ???

      1. Tach,

        Erlaubnis erteilt.
        HÄ???

        wahsaga woltle dich darauf hinweisen, dass du nach Aufzählung der Umstände in denen du dich befindest, dein Lösungsansatz akzeptabel ist; ein symbolisches "aufmunternd auf die Schultern klopfen" sozusagen. Da du keinerlei Fragen zu scheinen hast, konnte er logischerweise auch keine beantworten.

        mfg
        Woodfighter

        1. Hallo Jens,

          Da du keinerlei Fragen zu scheinen hast, ...

          Zu scheinen hast?
          Zu haben scheinst?

          *scnr*
           Martin

          --
          Irgendwann in grauer Vorzeit benutzte einer unserer prähistorischen Vorfahren ein Schimpfwort anstelle der Keule.
          Die Zivilisation hatte begonnen.
          1. Tach,

            Da du keinerlei Fragen zu scheinen hast, ...

            Zu scheinen hast?
            Zu haben scheinst?

            verdammt, *nachentschuldigungenumschau*, äh, ich mußte heute in Perl programmieren, da kann man ja nix sinnvolles von sich geben.

            mfg
            Woodfighter

            1. Hi,

              verdammt, *nachentschuldigungenumschau*, äh, ich mußte heute in Perl programmieren, da kann man ja nix sinnvolles von sich geben.

              Aber das in 97 syntaktisch korrekten, aber vollständig unterschiedlichen Varianten - und keine benötigt mehr als 12 Zeichen ;-)

              cu,
              Andreas

              --
              Warum nennt sich Andreas hier MudGuard?
              Schreinerei Waechter
              O o ostern ...
              Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
  2. ich habe ein array (dynamisch aus einer DB erzeugt). Darin stehen Zahlenwerte mit Nachkommastellen. Nun muss ich die Kommas durch Punkte ersetzen. Dies kann ich aber leider erst in JS machen, da die Daten vorher noch mit dem Komma als Trennzeichen verarbeitet werden.

    Das ergibt keinen  sinn, du trennst die Felder am Komma, dann können die einzelnen Werte kein Komma meghr beinhalten.

    Vor allem sind Serverseitge Technologien wesentlich flexibler und vor allem immer verfügbar

    Struppi.

    --
    Javascript ist toll (Perl auch!)
    1. Das ergibt keinen  sinn, du trennst die Felder am Komma, dann können die einzelnen Werte kein Komma meghr beinhalten.

      Falls Du dabei auf »» »»  da die Daten vorher noch mit dem Komma als Trennzeichen verarbeitet werden.

      anspielst => ersetze die Wörter "als Trennzeichen" durch "".

      Paul

      1. Das ergibt keinen  sinn, du trennst die Felder am Komma, dann können die einzelnen Werte kein Komma meghr beinhalten.

        Falls Du dabei auf »» »»  da die Daten vorher noch mit dem Komma als Trennzeichen verarbeitet werden.

        anspielst => ersetze die Wörter "als Trennzeichen" durch "".

        Laß doch bitte die Zeilen so wie du sie vorfindest, so läßt sich kaum erkennen, was von dir und was von mir ist.

        Trotzdem, was heißt ersetze die Wörter "als Trennzeichen" durch "".
        du hast Datensätze, die du am Komma trennst, oder hab ich das falsch verstanden?
        Dann kann in den werten ja auch kein Komma mehr vorhanden sein.

        Struppi.

        --
        Javascript ist toll (Perl auch!)
  3. n'abend,

    ich habe ein array (dynamisch aus einer DB erzeugt). Darin stehen Zahlenwerte mit Nachkommastellen. Nun muss ich die Kommas durch Punkte ersetzen. Dies kann ich aber leider erst in JS machen, da die Daten vorher noch mit dem Komma als Trennzeichen verarbeitet werden.

    welche Datenbank nutzt denn Komma als Dezimaltrennzeichen? Oder ist dein Datentyp statt bspw. DECIMAL(7,2) etwa VARCHAR(10) (o.ä.)?

    Eine Dezimalzahl mit Komma als Dezimaltrenner kann (zumindest in den mir bekannten Sprachen) nur als String vorliegen, weshalb dich die String-Methoden evtl weiter bringen...

    weiterhin schönen abend...

    --
    Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
    sh:( fo:# ch:# rl:° br:> n4:& ie:{ mo:} va:) de:] zu:} fl:{ ss:? ls:[ js:|
  4. gruss Paul

    ich habe ein array (dynamisch aus einer DB erzeugt). Darin stehen Zahlenwerte
    mit Nachkommastellen. Nun muss ich die Kommas durch Punkte ersetzen. Dies kann
    ich aber leider erst in JS machen, da die Daten vorher noch mit dem Komma als
    Trennzeichen verarbeitet werden.

    da ich mich anhand Deiner aufgabenstellung mal so richtig austoben moechte,
       bekommst Du von mir keinen loesungsansatz, sondern einen schon zusammen-
       gefuegten bastelsatz mit erklaerung.

    wie schon mehrfach erwaehnt, handelt es sich bei den eintraegen Deines arrays
       keineswegs um zahlen sondern um "string"-werte - also ungefaehr so:

    ~~~javascript var arr = ["12,45", "9,525", "13,1", "7,15", "126,3", "37,8845", "21,965"];
       alert((arr.toSource) ? (arr.toSource()) : (arr));

      
       um die kommata wirklich schnell zu ersetzen, empfehle ich, von der [String]-  
       methode "replace" sowie von den [Array]-methoden "join" und "split" gebrauch  
       zu machen.  
      
       "join" fuegt alle eintraege Deines arrays zu einem grossen string. gibt man  
       dieser methode einen string-parameter mit auf den weg, wird dieser zwischen  
       den einzelnen arraywerten eingefuegt:  
      
       ~~~javascript
    arr = arr.join("|");  
       alert((arr.toSource) ? (arr.toSource()) : (arr)); // eine lange zeichenkette;
    

    "replace" wird unter zuhilfenahme eines einfachen regulaeren ausdrucks alle
       in der zeichenkette vorkommenden kommata durch einen punkt ersetzen:

    ~~~javascript arr = arr.replace((/,/g), ".");
       alert((arr.toSource) ? (arr.toSource()) : (arr)); // keine kommata mehr;

      
       zwischen den begrenzern des RegExp-literals steht das zu ersetzende zeichen.  
       hinter dem abschliessenden "/" ist das sogenannte "global-flag" gesetzt, das  
       der RegExp-maschine mitteilt, die suche nicht schon nach der ersten ueberein-  
       stimmung abzubrechen, sondern den vergleich auf das suchmuster bis zum ende  
       durchzuziehen.  
      
       "split" trennt die zeichenkette an genau dem muster, welches als argument  
       dieser methode mitgegeben wird, packt die so entstandenen teil-strings in  
       ein array und gibt dieses zurueck:  
      
       ~~~javascript
    arr = arr.split("|"); // deswegen wurde die pipe schon bei "join" genommen;  
       alert((arr.toSource) ? (arr.toSource()) : (arr)); // keine kommata mehr;
    

    das ganze kann man auch zusammenfassend auf eine zeile bringen:

    ~~~javascript var arr = ["12,45", "9,525", "13,1", "7,15", "126,3", "37,8845", "21,965"];
       arr = arr.join("|").replace((/,/g), ".").split("|");

      
       soweit, sogut. im array stehen aber immer noch string-werte und keine zahlen!  
      
       jetzt liesse sich das array durchlaufen und jeder wert koennte durch die  
       globale methode "parseFloat" gejagt werden:  
      
       ~~~javascript
    for (var i=0; i<arr.length; ++i) {  
         arr[i] = Number(parseFloat(arr[i]));  
       }  
       alert((arr.toSource) ? (arr.toSource()) : (arr)); // nur noch zahlenwerte;
    

    schoen - ABER:

    seit Gecko 1.8b2 und JavaScript 1.6 nach mozilla.org stehen ein paar neue,
       von manchen lang herbeigesehnte, weil arbeitserleichternde [Array]-iteratoren
       zur vefuegung. und die methode "map" kommt hier wie gerufen:

    arr = arr.map(function (elm, idx, arr) {return Number(parseFloat(elm));});

    in der praxis muss aber nicht auf diese art zu entwickeln verzichtet werden,
       denn es gibt genau dafuer verschiedene JavaScript-bibliotheken, welche die
       neuen methoden auch den anderen browsern einpflanzen ...
       ... achtung eigenwerbung ... z.b. diese hier:

    http://www.pseliger.de/jsExtendedApi/jsApi.Array.mozExtensions.dev.js
       http://www.pseliger.de/jsExtendedApi/jsApi.Array.mozExtensions.js

    eine dem mir vorschwebenden ideal nahekommende
       loesung koennte also folgendermassen aussehen:

    ~~~javascript var arr = ["12,45", "9,525", "13,1", "7,15", "126,3", "37,8845", "21,965"];
       arr = arr.join("|").replace((/,/g), ".").split("|").map(function (elm, idx, arr) {return Number(parseFloat(elm));});
       alert((arr.toSource) ? (arr.toSource()) : (arr));

      
      
    
    > Danke,  
    > Paul  
      
       gern geschehen - peterS. - pseliger@gmx.net  
      
    
    -- 
    »Because objects in JavaScript are so flexible, you will want to think differently about class hierarchies.  
    Deep hierarchies are inappropriate. Shallow hierarchies are efficient and expressive.« - [Douglas Crockford](http://javascript.crockford.com/)  
      
    ie:( fl:) br:> va:( ls:& fo:) rl:| n3;} n4:} ss:} de:µ js:} mo:? zu:]