Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Zahl als Text mit Nachkommastellen ausgeben

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Zahl als Text mit Nachkommastellen ausgeben

    This topic has been deleted. Only users with topic management privileges can see it.
    • OliverIO
      OliverIO last edited by

      @manfredhi

      mit javascript würde man diese funktion verwenden
      https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat

      M 1 Reply Last reply Reply Quote 0
      • haus-automatisierung
        haus-automatisierung Developer Most Active @ManfredHi last edited by

        @manfredhi sagte in Zahl als Text mit Nachkommastellen ausgeben:

        Also z.B. 12 soll als 12.00 oder 13.1 als 13.10 ausgegeben werden.

        Mit Punkt als Komma? US-Schreibweise? Dann z.B. eine Funktion mit

        return parseFloat(val).toFixed(2);

        <xml xmlns="https://developers.google.com/blockly/xml">
          <variables>
            <variable id="KP[4n0khi-n@uHIkO?S7">val</variable>
          </variables>
          <block type="procedures_defcustomreturn" id="`SI5{oFEq$]b#KnMY_Mf" x="113" y="113">
            <mutation statements="false">
              <arg name="val" varid="KP[4n0khi-n@uHIkO?S7"></arg>
            </mutation>
            <field name="NAME">runden</field>
            <field name="SCRIPT">cmV0dXJuIHBhcnNlRmxvYXQodmFsKS50b0ZpeGVkKDIpOw==</field>
            <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
          </block>
          <block type="debug" id="%g{3ckctuAVE=p?J?LSW" x="113" y="288">
            <field name="Severity">log</field>
            <value name="TEXT">
              <shadow type="text" id="=.I%NeGbWvnZIp:X})sd">
                <field name="TEXT">test</field>
              </shadow>
              <block type="procedures_callcustomreturn" id="-qkEw);`gK_4^vadAE8x">
                <mutation name="runden">
                  <arg name="val"></arg>
                </mutation>
                <value name="ARG0">
                  <block type="math_number" id="pUusT#5.G3J`I=d#;6!=">
                    <field name="NUM">12</field>
                  </block>
                </value>
              </block>
            </value>
          </block>
        </xml>
        
        M 2 Replies Last reply Reply Quote 2
        • M
          ManfredHi @haus-automatisierung last edited by

          Es geht nur darum, dass ich eine Zahl habe (von wo sie kommt bzw. wie sie berechnet wurde spielt in diesem Fall keine Rolle), und diese für den Export in ein Textfile diese Zahl mit einem Punkt und den beiden Nachkommastellen benötige.
          Ob sie als String umgewandelt wird oder nicht ist auch egal, da sie ja in ein Textfile kommt. Nur der Punkt und die beiden Nachkommastellen sind wichtig, in diesem Fall die US-Schreibweise.

          haus-automatisierung 1 Reply Last reply Reply Quote 0
          • haus-automatisierung
            haus-automatisierung Developer Most Active @ManfredHi last edited by

            @manfredhi sagte in Zahl als Text mit Nachkommastellen ausgeben:

            Nur der Punkt und die beiden Nachkommastellen sind wichtig, in diesem Fall die US-Schreibweise.

            Dann nimm toFixed wie in dem Beispiel oben.

            M 1 Reply Last reply Reply Quote 1
            • M
              ManfredHi @haus-automatisierung last edited by

              @haus-automatisierung sagte in Zahl als Text mit Nachkommastellen ausgeben:

              Mit Punkt als Komma? US-Schreibweise? Dann z.B. eine Funktion mit
              return parseFloat(val).toFixed(2);

              Super. Vielen Dank. So funktioniert es.

              1 Reply Last reply Reply Quote 0
              • M
                ManfredHi @haus-automatisierung last edited by

                @haus-automatisierung sagte in Zahl als Text mit Nachkommastellen ausgeben:

                Dann nimm toFixed wie in dem Beispiel oben.

                Eine Frage noch: Wie wäre das dann bei der deutschen Schreibweise, als mit einem Komma statt einem Punkt ?

                haus-automatisierung paul53 2 Replies Last reply Reply Quote 0
                • haus-automatisierung
                  haus-automatisierung Developer Most Active @ManfredHi last edited by

                  @manfredhi Siehe Kommentar von @OliverIO

                  1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @ManfredHi last edited by

                    @manfredhi sagte: mit einem Komma statt einem Punkt ?

                    @oliverio sagte in Zahl als Text mit Nachkommastellen ausgeben:

                    diese funktion verwenden

                    ... oder

                    val.toFixed(2).replace('.', ',')
                    
                    1 Reply Last reply Reply Quote 0
                    • M
                      ManfredHi @OliverIO last edited by

                      @oliverio sagte in Zahl als Text mit Nachkommastellen ausgeben:

                      mit javascript würde man diese funktion verwenden
                      https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat

                      wenn ich diese funktion mit der Währung mache, dann passt es.

                      return Intl.NumberFormat('de-DE', {style: 'currency', currency: 'EUR'}).format(Komma,);
                      

                      Aber wie geht diese funktion dann ohne einem Währungszeichen?

                      haus-automatisierung 1 Reply Last reply Reply Quote 0
                      • haus-automatisierung
                        haus-automatisierung Developer Most Active @ManfredHi last edited by haus-automatisierung

                        @manfredhi Steht doch in der verlinkten Doku

                        return Intl.NumberFormat('de-DE', { minimumFractionDigits: 2 }).format(val);
                        

                        Du kannst sehr viele Optionen definieren - auch wie gerundet werden soll usw.: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#roundingmode

                        M 1 Reply Last reply Reply Quote 1
                        • M
                          ManfredHi @haus-automatisierung last edited by

                          @haus-automatisierung

                          Ich habe mir nun eine Funktion gemacht, wo ich auch die Anzahl der mindest- und maximal-Dezimalstellen angeben kann. Das funktioniert jetzt einwandfrei.

                          Frage: kann man das auch als Globale Funktion hinterlegen um dies in jedem Blockly-Script dann zur Verfügung zu haben oder muss ich die Funktion in jedem Script, wo ich das brauche, erstellen.

                          haus-automatisierung 1 Reply Last reply Reply Quote 0
                          • haus-automatisierung
                            haus-automatisierung Developer Most Active @ManfredHi last edited by

                            @manfredhi In Typescript geht das, ja. In Blockly nicht. Zumindest nicht schön.

                            Globales Script = Code wird vor jedes andere Script kopiert.

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            885
                            Online

                            32.0k
                            Users

                            80.4k
                            Topics

                            1.3m
                            Posts

                            5
                            14
                            445
                            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