Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Variable soll immer zwei Nachkommastellenn haben

    NEWS

    • Amazon Alexa - ioBroker Skill läuft aus ?

    • Monatsrückblick – September 2025

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    Variable soll immer zwei Nachkommastellenn haben

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

      Hallo,
      heute über einen "blöden" Bug in meinem Script gestolpert 😉

      Ich berechne die Kosten für meinen Netzbezug, aktueller Wert ist:
      6.24 kWh X 0.32€ = 1.9968

      Blockly gibt mir jetzt nur eine "2" raus (Wunsch: 2.00),
      bei anderen Werten kommt korrekt eine auf zwei Stellen gerundete Zahl raus
      Bsp: 2.22 kWh * 0.32€ = 0.71

      Wie kann ich immer sicherstellen, dass wenn es auch mal eine ganze Zahl ist (Bsp: 5.000000000 €) eine 5.00 ausgegeben wird?

      2025-10-20_170359.jpg

      Asgothian paul53 2 Replies Last reply Reply Quote 0
      • Asgothian
        Asgothian Developer @topsurfer last edited by

        @topsurfer sagte in Variable soll immer zwei Nachkommastellenn haben:

        Hallo,
        heute über einen "blöden" Bug in meinem Script gestolpert 😉

        Ich berechne die Kosten für meinen Netzbezug, aktueller Wert ist:
        6.24 kWh X 0.32€ = 1.9968

        Blockly gibt mir jetzt nur eine "2" raus (Wunsch: 2.00),
        bei anderen Werten kommt korrekt eine auf zwei Stellen gerundete Zahl raus
        Bsp: 2.22 kWh * 0.32€ = 0.71

        Wie kann ich immer sicherstellen, dass wenn es auch mal eine ganze Zahl ist (Bsp: 5.000000000 €) eine 5.00 ausgegeben wird?

        2025-10-20_170359.jpg

        Dein Skript hat keinen Fehler
        Deine Visualisierung wo der Wert angezeigt wird schon. In dieser musst du konfigurieren das du die Zahl mit 2 Nachkommastellen sehen willst. Wie du das da machst kann ich Dir nicht sagen - das hängt davon ab wo du die Zahl dargestellt bekommst.

        Und wenn du dich darüber beschwerst das im Datenpunkt nur 2 steht, und nicht 2.00 dann kann ich Dir nicht helfen - datenpuntke sind Intern, so formatiert das man sie gut benutzen kann, und nicht als Datensumpf für menschliche Leser gedacht.

        T 1 Reply Last reply Reply Quote 1
        • T
          topsurfer @Asgothian last edited by

          OK,
          dann müßte ich die Zahl besser in einen String umwandeln, der würde ja dann auch in vis bzw. im Objekt korrekt (2.00) angezeigt.

          Wie kann ich prüfen, ob es eine grade Zahl ist ("2"), dann würde ich mit String-Operation "einfach" ein ".00" anhängen (wäre meine erste Idee ...)

          Asgothian Codierknecht 2 Replies Last reply Reply Quote 0
          • paul53
            paul53 @topsurfer last edited by paul53

            @topsurfer sagte: Wie kann ich immer sicherstellen, dass wenn es auch mal eine ganze Zahl ist (Bsp: 5.000000000 €) eine 5.00 ausgegeben wird?

            Durch eine Wandlung in einen String per Zahl.toFixed(2).
            In Blockly mittels JS:Funktion:

            return zahl.toFixed(stellen);
            

            Blockly_temp.JPG

            1 Reply Last reply Reply Quote 1
            • Asgothian
              Asgothian Developer @topsurfer last edited by

              @topsurfer sagte in Variable soll immer zwei Nachkommastellenn haben:

              OK,
              dann müßte ich die Zahl besser in einen String umwandeln, der würde ja dann auch in vis bzw. im Objekt korrekt (2.00) angezeigt.

              Wie kann ich prüfen, ob es eine grade Zahl ist ("2"), dann würde ich mit String-Operation "einfach" ein ".00" anhängen (wäre meine erste Idee ...)

              Warum willst du das im Skript machen, und nicht da wo du die Zahl darstellen willst ? Ich versteh das nicht. Da machst du aus Zahlen mit denen man (genau) rechnen kann ungenaue Strings, nur damit du in deiner Visualisierung die Anzeige nicht formatieren musst ? Das ist doch unsinnig

              T 1 Reply Last reply Reply Quote 0
              • Codierknecht
                Codierknecht Developer Most Active @topsurfer last edited by

                @topsurfer sagte in Variable soll immer zwei Nachkommastellenn haben:

                dann müßte ich die Zahl besser in einen String umwandeln, der würde ja dann auch in vis bzw. im Objekt korrekt (2.00) angezeigt

                In der Vis kannst Du die Anzahl der Nachkommastellen einstellen.

                37733f6f-bab2-43fe-95e6-0bf4044ea5b4-image.png

                Im Objekt würde ich da nix ändern. Weder am Typen noch an der Formatierung. Wenn Du an anderer Stelle mit dem Wert weiterrechnest, erhältst Du Rundungsfehler.

                1 Reply Last reply Reply Quote 0
                • T
                  topsurfer @Asgothian last edited by

                  @asgothian said in Variable soll immer zwei Nachkommastellenn haben:

                  Warum willst du das im Skript machen, und nicht da wo du die Zahl darstellen willst ? Ich versteh das nicht.

                  Ich gebe diesen Wert auf einem AWTRIX-Display aus, da kann ich (im Gegensatz zu VIS) keine Nachkommastellen angeben.
                  So passt es nun, danke euch!
                  20251021_102253.jpg

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  819
                  Online

                  32.3k
                  Users

                  81.0k
                  Topics

                  1.3m
                  Posts

                  4
                  7
                  100
                  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