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.
    • M
      ManfredHi last edited by

      Hallo,
      wie kann ich eine Zahl so als Text ausgeben, sodass auch die Nullen mit ausgegeben werden.
      Also z.B. 12 soll als 12.00 oder 13.1 als 13.10 ausgegeben werden.

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

        @manfredhi

        Ich reibe mal die Glaskugel....

        Womit berechnest Du es?
        Javascript, Blockly, Rechenschieber.......?

        Wie sehen Deine Gehversuche aus?

        1 Reply Last reply Reply Quote 0
        • 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

                                820
                                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