Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. Ungewöhnliche Nachkommastellen in der History

    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

    Ungewöhnliche Nachkommastellen in der History

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

      Ich finde leider die Ursache meines Problems nicht.
      Meine Rohdaten des Smartmeters sind alle auf 3 Nachkommastellen.
      Mit diesen rechne ich weiter und zwar nur plus und minus.
      Wieso hat dann plötzlich mein Tagesverbrauch so viele Nachkommastellen in der History?
      Diese sind auch sehr ungewöhnlich. Die 3 Nachkommastellen sind korrekt. Dann folgen entweder haufenweise 9 oder 0. Kann absolut kein Rechnungsfehler sein. Woher kommen diese Werte?
      Kann mir da jemand weiterhelfen? Oder handelt es sich um ein Bug?

      Vielen Dank für Eure Hilfe

      nachkomma.PNG

      Homoran paul53 W 3 Replies Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @Shark01 last edited by

        @shark01 sagte in Ungewöhnliche Nachkommastellen in der History:

        Mit diesen rechne ich weiter

        dann lass dir die Zwischenergebnisse doch mal anzeigen.
        und runde ggf.

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

          @shark01 sagte: Mit diesen rechne ich weiter

          Bei Rechnen mit Gleitkommawerten entstehen irgendwann diese Nachkommastellen.

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

            @paul53 Vielen Dank für die Antwort. Verstehe zwar nicht wie diese entstehen. Werde meine Resultate also runden müssen.

            MartinP 1 Reply Last reply Reply Quote 0
            • W
              warp-it @Shark01 last edited by

              @shark01
              Bin gerade auch auf das Phänomen gestoßen. Ist doch kaputt, wenn in Blockly aus 0,002-0,001 der Wert 0,0009999999999763531 entsteht.

              Codierknecht OliverIO 2 Replies Last reply Reply Quote 0
              • Codierknecht
                Codierknecht Developer Most Active @warp-it last edited by

                @warp-it sagte in Ungewöhnliche Nachkommastellen in der History:

                Ist doch kaputt, wenn in Blockly aus 0,002-0,001 der Wert 0,0009999999999763531 entsteht

                Nein, ist es nicht. Das Rechnen mit Gleitkommazahlen produziert diese Rundungsfehler.
                Das liegt in der Natur der Sache.

                https://www.vectorsoft.de/blog/2012/12/rundungsfehler-bei-float-werten

                W 2 Replies Last reply Reply Quote 0
                • W
                  warp-it @Codierknecht last edited by

                  @codierknecht
                  Computer sind sooooo doof...

                  Thomas Braun Asgothian 2 Replies Last reply Reply Quote 0
                  • Thomas Braun
                    Thomas Braun Most Active @warp-it last edited by

                    @warp-it Aber dafür schnell!

                    MartinP 1 Reply Last reply Reply Quote 0
                    • MartinP
                      MartinP @Thomas Braun last edited by

                      @thomas-braun
                      Irgendjemand hat mir zumindest für Menschen erklärt, man könnte sie in eine 2 x 2 Tabelle einsortieren ...

                      { dumm, klug } x { faul, fleißig }

                      Dumm und Fleißig - das sind die Schlimmsten.... richten deutlich mehr Schaden pro Zeiteinheit an, als Dumm und Faul ...

                      Deshalb habe ich nur so einen langsamen Prozessor für ioBroker in Einsatz 😉

                      1 Reply Last reply Reply Quote 0
                      • Asgothian
                        Asgothian Developer @warp-it last edited by

                        @warp-it sagte in Ungewöhnliche Nachkommastellen in der History:

                        @codierknecht
                        Computer sind sooooo doof...

                        viel schlimmer. Computer machen genau das was du ihnen sagst - nicht was du von ihnen willst. Und die wenigsten können ihre Aufgabe hinreichend genau spezifizieren dass sie immer gleich und korrekt abgearbeitet wird.

                        A.

                        1 Reply Last reply Reply Quote 3
                        • W
                          warp-it @Codierknecht last edited by

                          @codierknecht
                          Hmmm, der Windows Taschenrechner kann das:
                          20f55725-7d56-4073-adec-14469dc670c3-image.png
                          Sogar ich kann das:
                          265e4b2c-33e1-4cf5-b6cb-a5d678b30943-image.png

                          Ro75 1 Reply Last reply Reply Quote 0
                          • Ro75
                            Ro75 @warp-it last edited by

                            @warp-it Gleitkommazahl, das wurde ja beschrieben.

                            Ro75.

                            1 Reply Last reply Reply Quote 0
                            • MartinP
                              MartinP @Shark01 last edited by

                              @shark01 Das hat etwas mit der internen Darstellung der Gleitkommanzahlen zu tun - ist etwas Hardcore ...

                              Das Gleitkommaformat ist ein kein platzraubendes Dezimalformat, sondern eine gepackte Binärdarstellungen ...

                              Die Darstellungs/Rundungsfehler entstehen bei den Umwandlungen aus/zur Dezimaldarstellung ..

                              https://en.wikipedia.org/wiki/Floating-point_error_mitigation

                              https://learn.microsoft.com/de-de/office/troubleshoot/excel/floating-point-arithmetic-inaccurate-result

                              1 Reply Last reply Reply Quote 0
                              • OliverIO
                                OliverIO @warp-it last edited by OliverIO

                                @warp-it sagte in Ungewöhnliche Nachkommastellen in der History:

                                0,002-0,001 der Wert 0,0009999999999763531

                                aber an javascript selbst liegt das nicht

                                a5dcb402-5c6a-4ace-a4fd-592f3720179b-image.png

                                auch im iobroker als script

                                console.log(0.002-0.001)
                                
                                javascript.0	15:13:32.654	info	Start JavaScript script.js.test1 (Javascript/js)
                                javascript.0	15:13:32.662	info	script.js.test1: 0.001
                                javascript.0	15:13:32.662	info	script.js.test1: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                                
                                MartinP 1 Reply Last reply Reply Quote 0
                                • MartinP
                                  MartinP @OliverIO last edited by MartinP

                                  @oliverio said in Ungewöhnliche Nachkommastellen in der History:

                                  @warp-it sagte in Ungewöhnliche Nachkommastellen in der History:

                                  0,002-0,001 der Wert 0,0009999999999763531

                                  aber an javascript selbst liegt das nicht

                                  a5dcb402-5c6a-4ace-a4fd-592f3720179b-image.png

                                  auch im iobroker als script

                                  console.log(0.002-0.001)
                                  
                                  javascript.0	15:13:32.654	info	Start JavaScript script.js.test1 (Javascript/js)
                                  javascript.0	15:13:32.662	info	script.js.test1: 0.001
                                  javascript.0	15:13:32.662	info	script.js.test1: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                                  

                                  Schlecht gewähltes Beispiel

                                  Lasse Javascript mal das hier rechnen - genaues Ergebnis wäre 1234567890.0:

                                  log (1234567890.001 + 0.349 - 0.002 - 0.348 + 0.003 + 0.347 - 0.004 - 0.346 + 0.005 + 0.345 - 0.006 - 0.344 + 0.007 + 0.343 - 0.008 - 0.342);
                                  
                                  F 1 Reply Last reply Reply Quote 0
                                  • F
                                    fastfoot @MartinP last edited by

                                    @martinp sagte in Ungewöhnliche Nachkommastellen in der History:

                                    Schlecht gewähltes Beispiel

                                    das war das was der TE moniert hatte. Ansonsten muss es nicht sooo kompliziert sein:
                                    log(0.1 + 0.2)
                                    script.js.floats: 0.30000000000000004

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

                                      @fastfoot sagte in Ungewöhnliche Nachkommastellen in der History:

                                      log(0.1 + 0.2)
                                      script.js.floats: 0.30000000000000004

                                      hier ist es tatsächlich so,

                                      aber bei dem TE Beispiel ist es nicht so.
                                      Nachtrag:
                                      ich habe mich mal überwunden das Blockly nachzustellen
                                      und kann das Ergebnis dort nicht nachvollziehen

                                      e04e458b-ab9f-4d72-ba14-586155be5a0b-image.png

                                      javascript.0	18:19:06.351	info	Start JavaScript script.js.test2 (Blockly)
                                      javascript.0	18:19:06.378	info	script.js.test2: 0.001
                                      javascript.0	18:19:06.378	info	script.js.test2: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                                      

                                      von daher alles ok

                                      die Eingangs im log gezeigten Daten können schon sein, aufgrund den zusätzlichen Rechenoperationen.
                                      Wobei ich selbst bei +- Operationen damit nicht gerechnet hätte, sondern eher bei */sqrt. wobei bei Math.sqrt(7)*Math.sqrt(7) = 7.000000000000001 js erstaunlich gut abschneidet

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

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      957
                                      Online

                                      31.9k
                                      Users

                                      80.1k
                                      Topics

                                      1.3m
                                      Posts

                                      11
                                      17
                                      616
                                      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