Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Addition von 0.01 ist falsch

    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

    Addition von 0.01 ist falsch

    This topic has been deleted. Only users with topic management privileges can see it.
    • Homoran
      Homoran Global Moderator Administrators @Sandmanyz last edited by

      @Sandmanyz sagte in Addition von 0.01 ist falsch:

      Kann man das Problem irgendwie lösen?

      Ja, durch runden 😂

      Liegt an den Fließkommaberechnungen - Ist so!

      S 1 Reply Last reply Reply Quote 0
      • S
        Sandmanyz @Homoran last edited by

        @Homoran
        Das ist leider wenig hilfreich. Ich benötige ein mathematisch korrektes Ergebnis.

        Homoran 1 Reply Last reply Reply Quote 0
        • Homoran
          Homoran Global Moderator Administrators @Sandmanyz last edited by

          @Sandmanyz sagte in Addition von 0.01 ist falsch:

          Ich benötige ein mathematisch korrektes Ergebnis.

          ???
          und dafür geht es dir um die 25. Kommastelle
          Wenn du jeden rechenschritt korrekt rundest, bekommst du auch ein korrektes Ergebnis
          Nur das scheingenaue Ergebnis runden ist falsch

          S 1 Reply Last reply Reply Quote 0
          • S
            Sandmanyz @Homoran last edited by

            @Homoran
            Das mit dem Runden ist eben nicht die Lösung. Siehe meine Beispiele im ersten Beitrag.

            Homoran 1 Reply Last reply Reply Quote 0
            • Homoran
              Homoran Global Moderator Administrators @Sandmanyz last edited by

              @Sandmanyz sagte in Addition von 0.01 ist falsch:

              @Homoran
              Das mit dem Runden ist eben nicht die Lösung. Siehe meine Beispiele im ersten Beitrag.

              da rundest du ja auch nur das falshe Endergebnis, nicht jeden rechenschritt

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

                @Homoran sagte in Addition von 0.01 ist falsch:

                da rundest du ja auch nur das falshe Endergebnis, nicht jeden rechenschritt

                Man sollte immer nur das Endergebnis runden.

                @Sandmanyz sagte in Addition von 0.01 ist falsch:

                9 mal 0.01 addiert, Ergebnis 0.09999999999999999 -> gerundet 0.10 = FALSCH, richtig wäre 0,09
                11 mal 0.01 addiert, Ergebnis 0.11999999999999998 -> gerundet 0.12 = FALSCH, richtig wäre 0,11

                Das kann ich nicht nachvollziehen, denn ich erhalte immer das richtige Ergebnis bei diesem Test:

                Blockly_temp.JPG

                Homoran 1 Reply Last reply Reply Quote 0
                • Homoran
                  Homoran Global Moderator Administrators @paul53 last edited by

                  @paul53 sagte in Addition von 0.01 ist falsch:

                  Man sollte immer nur das Endergebnis runden.

                  eigentlich ja!

                  Kann es hier ein async Problem sein, da er ja einen Datenpunkt über einen Adapter aktualisiert?

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

                    @Homoran sagte:

                    Kann es hier ein async Problem sein, da er ja einen Datenpunkt über einen Adapter aktualisiert?

                    Dann wäre der Zählerstand zu klein, aber nicht zu groß.
                    Man sollte aber immer mit Variablen (ohne Rundung) arbeiten und den Wert gerundet in den Datenpunkt schreiben.

                    1 Reply Last reply Reply Quote 1
                    • UncleSam
                      UncleSam Developer @Sandmanyz last edited by UncleSam

                      @Sandmanyz Wenn wir hier über die Theorie reden, lässt sich das Problem nicht lösen. Fliesskommazahlen werden genau aus diesem Grund in der Informatik mit sehr viel Vorsicht verwendet.

                      Wenn du das Problem lösen willst, musst du das Problem "ändern." Sprich: du musst anders an das Problem heran gehen.

                      Was ist denn dein eigentliches Problem? Ich nehme nicht an, dass du aus lauter Freude mal etwas Zahlen addierst.

                      Ein Vorschlag: rechne mit Ganzzahlen (0.01 ~= 1) und verwende einen alias, der genau diesen Wert noch dividiert (/ 100).

                      paul53 1 Reply Last reply Reply Quote 1
                      • paul53
                        paul53 @UncleSam last edited by paul53

                        @UncleSam sagte:

                        rechne mit Ganzzahlen

                        Ich würde es immer so machen:

                        Blockly_temp.JPG

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

                          @paul53

                          Perfekt 👍 😊

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          620
                          Online

                          31.8k
                          Users

                          80.0k
                          Topics

                          1.3m
                          Posts

                          blockly javascript
                          4
                          12
                          682
                          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