Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Kommazahl 0 anhängen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Kommazahl 0 anhängen

    This topic has been deleted. Only users with topic management privileges can see it.
    • arteck
      arteck Developer Most Active last edited by arteck

      @malaus das eine ist ein string.. das andere ein number
      und das ist abhängig von der angegebenen Landesfprmatierung

      https://linuxhint.com/add-commas-number-javascript/

      mit parseFloat machst du aus dem x String ein number ..

      M 1 Reply Last reply Reply Quote 0
      • M
        Malaus @arteck last edited by

        @arteck meine Idee war, dass ich die erhaltene Number mit toFixed() in ein String umwandle und zwei Kommastellen hinzufüge. Danach das ganze wieder zurück zu Number. Aber leider werden hier die neu hinzugefügte Kommastellen nicht mitgenommen.

        In deinem Beispiel werden größere Zahlen als Kommazahlen umgewandelt.
        Ich habe mal folgendes ausprobiert.

        console.log("Example to add comma to number");
        const num = 57484;
        const numFor = Intl.NumberFormat('en-US');
        const new_for = numFor.format(num);
        console.log(new_for)
        

        Leider funktioniert dieses Beispiel nur bei größeren Zahlen. Wenn die Zahl 23 ist, erhalte ich als Ergebnis 23.
        Gebe ich 2300 ein, erhalte ich als Ergebnis 2,300

        mickym F Codierknecht 4 Replies Last reply Reply Quote 0
        • mickym
          mickym Most Active @Malaus last edited by

          @malaus da in dem JavaScript Adapter auch JSONATA enthalten ist kannst Du über $formatNumber die Zahl in einen String umwandeln und mit picture das Ausgabeformat festlegen.

          http://docs.jsonata.org/numeric-functions

          1 Reply Last reply Reply Quote 0
          • F
            fastfoot @Malaus last edited by

            @malaus

            const fmtDe = Intl.NumberFormat('en-US', {
                minimumIntegerDigits: 1,
                minimumFractionDigits: 1,
                maximumFractionDigits: 3
            });
            let number1 = 23.00001;
            let number2 = 23.12389;
            log(fmtDe.format(number1));
            log(fmtDe.format(number2));
            
            1 Reply Last reply Reply Quote 0
            • Codierknecht
              Codierknecht Developer Most Active @Malaus last edited by

              @malaus sagte in Kommazahl 0 anhängen:

              Aber leider werden hier die neu hinzugefügte Kommastellen nicht mitgenommen

              Ein Trugschluss!
              Die "Kommastellen" sind sehr wohl enthalten. Sie werden ohne weiteres Zutun lediglich nicht dargestellt.
              Für die Darstellung (Vis oder Log) wird die Zahl implizit in einen String konvertiert. Nachkommastellen werden dabei nur dann mit ausgegeben, wenn man das explizit mit angibt.

              @malaus sagte in Kommazahl 0 anhängen:

              Gebe ich 2300 ein, erhalte ich als Ergebnis 2,300

              Auch das ist ein Trugschluss. Das "Komma" ist hier kein Komma, sondern das Tausender-Trennzeichen im angegebenen Länderformat (en-US).
              Wenn Du - wie in D/A/CH üblich - den Punkt als Tausender-Trennzeichen haben möchtest, musst Du das gewünschte Länderformat (de-DE) mit angeben.

              1 Reply Last reply Reply Quote 0
              • mickym
                mickym Most Active last edited by

                So ich habs gerade im JS Adapter getestet und JSONATA tut jedenfalls:

                7857e59c-047c-43ab-b197-6267b5d796c8-image.png

                console.log(jsonataExpression(23,'$formatNumber($, "0,00",{\'decimal-separator\':\',\'})'));
                
                M 1 Reply Last reply Reply Quote 0
                • M
                  Malaus @mickym last edited by

                  @mickym wenn ich das ausführe, erhalte ich wieder einen String?
                  Wie wäre das, wenn ich das dann in eine Number schreiben möchte?

                  mickym 1 Reply Last reply Reply Quote 0
                  • mickym
                    mickym Most Active @Malaus last edited by

                    @malaus sagte in Kommazahl 0 anhängen:

                    ....meine Idee war, dass ich die erhaltene Number mit toFixed() in ein String umwandle und zwei Kommastellen hinzufüge. Danach das ganze wieder zurück zu Number.

                    Sobald Du etwas wieder in eine Zahl zurückverwandeltst, dann verlierst Du die Formatierung. Intern werden Zahlen nicht mit 0 hinter dem Komma gerechnet und Dezimaltrenner sind nun mal Punkte und kein Komma. Entweder Du wandelst eine Zahl in einen String um, um das darzustellen, aber Du wirst JS nicht dazu bringen Dezimalzahlen mit Komma als Zahlen zu akzeptieren. Deswegen ist das Zurückkonvertieren in Number völlig verkehrt.

                    M 1 Reply Last reply Reply Quote 1
                    • M
                      Malaus @mickym last edited by

                      @mickym danke für diese Info. Dann kann ich das lange probieren.

                      1 Reply Last reply Reply Quote 0
                      • mickym
                        mickym Most Active @Malaus last edited by mickym

                        hat sich überschnitten. 😉

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        521
                        Online

                        31.9k
                        Users

                        80.2k
                        Topics

                        1.3m
                        Posts

                        javascript
                        5
                        11
                        431
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo