Ankündigung

Einklappen
Keine Ankündigung bisher.

stringformat

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    stringformat

    Gibt's irgendwo eigentlich eine bessere Beschreibung zu "stringformat", als die im Handbuch. Da ist einfach viel zu wenig erklärt, ist oft Versuch und Irrtum um zum gewünschtem Ergebnis zu kommen.

    Aktuell konkretes Problem: kann man Zahlen mit 1000er-Punkt formatieren?
    ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

    #2
    Schau mal ins Handbuch, S. 118
    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
    Enertex Produkte kaufen

    Kommentar


      #3
      Die Seite 118 beantwortet meine Frage
      Zitat von Uwe! Beitrag anzeigen
      kann man Zahlen mit 1000er-Punkt formatieren?
      zumindest schon mal mit JA, schön!

      Wie es geht, weiß ich aber trotzdem nicht

      Ich hab aktuell "stringformat("Betriebsstunden Primärpumpe-9/3/3" * 100.0, 4, 3, 6, 0) + $h$"
      Soll so ne Art Betriebsstundenzähler sein. Ausgabe aktuell dazu "003041h"

      Dein Beispiel auf Seite 118 hat ...,4,4,8,1

      An der ersten 4 kann es also nicht liegen, die haben wir beide.

      An zweiter Stelle hast Du 4, ich 3. Das Handbuch sagt dazu
      3: Auffüllen mit Nullen (wird ignoriert, falls Data vom Datentyp uXX oder sXX und Präzision angegeben wurde)
      4: Auffüllen mit Nullen und Leerzeichen bei positiver Zahl (nur zulässig, falls Data vom Datentyp sXX oder fXX und keine Umwandlung ins Oktal- oder Hexadezimalformat; wird ignoriert, falls Data vom Datentyp uXX oder sXX und Präzision angegeben wurde)
      Da würde ich verstehen, dass der Unterschied zwischen 3 und 4 nur ein Leerzeichen bei positiven Zahlen ist, damit positive und negative gleich breit sind.

      Die 8 bei Dir / 6 bei mir ist doch einfach nur die Länge der Zahl, bzw. des Textes.

      Und die 1 bei Dir / 0 bei mir dachte ich ist die Anzahl der Kommastellen, allerdings hat sowohl Dein Beispiel als auch meine Zahl keine Nachkommastellen. Was ist dann der Unterschied zwischen 0 und 1 bei "Präzision"?

      Und warum Du 1000er Punkte hast und ich nicht, weiß ich jetzt trotzdem noch nicht. Ist es wirklich die 4 bei "Format"?

      Du musst doch aber zugeben, dass man mit der Beschreibung im Handbuch nicht wirklich viel anfangen kann.....
      ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

      Kommentar


        #4
        So gut das Handbuch auch ist.. an diesem Punkt muss ich dir recht geben.. den hab ich auch nie wirklich verstanden
        Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

        Kommentar


          #5
          Zitat von Uwe! Beitrag anzeigen
          An der ersten 4 kann es also nicht liegen, die haben wir beide.
          Die bedeutet: Umwandlung als Fließkommazahl mit "Punkt"
          Da würde ich verstehen, dass der Unterschied zwischen 3 und 4 nur ein Leerzeichen bei positiven Zahlen ist, damit positive und negative gleich breit sind.
          genau so ist es.
          Die 8 bei Dir / 6 bei mir ist doch einfach nur die Länge der Zahl, bzw. des Textes.
          Genau.
          Und die 1 bei Dir / 0 bei mir dachte ich ist die Anzahl der Kommastellen, allerdings hat sowohl Dein Beispiel als auch meine Zahl keine Nachkommastellen. Was ist dann der Unterschied zwischen 0 und 1 bei "Präzision"?
          Genau.
          Das hier
          Code:
          x1=stringformat(13354e4f32,4,4,8,1)
          x2=stringformat(13354e-4f32,4,4,8,1)
          x3=stringformat(13354e4f32,4,4,8,2)
          x4=stringformat(13354e-4f32,4,4,8,3)
          y1=stringformat(13354e4f32,4,3,8,4)
          y2=stringformat(13354e-4f32,4,3,8,2)
          generiert dann
          Code:
          % Wert von Objekt 247 (x1) abfragen:
          % Typ: erweiterter Text
          % Wert:  133540000.0
          %
          % Wert von Objekt 250 (x2) abfragen:
          % Typ: erweiterter Text
          % Wert:  00001.3
          %
          % Wert von Objekt 252 (x3) abfragen:
          % Typ: erweiterter Text
          % Wert:  133540000.00
          %
          % Wert von Objekt 254 (x4) abfragen:
          % Typ: erweiterter Text
          % Wert:  001.335
          %
          % Wert von Objekt 256 (y1) abfragen:
          % Typ: erweiterter Text
          % Wert: 133540000.0000
          %
          % Wert von Objekt 258 (y2) abfragen:
          % Typ: erweiterter Text
          % Wert: 00001.34
          offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
          Enertex Produkte kaufen

          Kommentar


            #6
            Zitat von enertegus Beitrag anzeigen
            Die [4 an der ersten Stelle] bedeutet: Umwandlung als Fließkommazahl mit "Punkt"
            Frage 1: Warum steht das nicht so im Handbuch?
            Frage 2: Ich hab aber keinen Tausenderpunkt, obwohl ich 4 nehme! Warum?"
            Oder meinst Du jetzt mit "Punkt" das Dezimaltrennzeichen?

            Und dann zu Deinen Beispielen x2 bis y2: Die kann ich soweit nachvollziehen, aber da hat auch kein Ergebnis einen Tausenderpunkt!!!

            Ich such nach einer Möglichkeit für einen Tausenderpunkt, also Zifferngruppierung, sprich "123.450" statt "123450"

            HALT: Mir schwant böses!
            Im Handbuch werden die Werte im Beispiel durch 1000 dividiert. Du willst mir das jetzt aber bitte nicht als Tausenderpunkt verkaufen? Du nimmst also die Zahl "123 Ganze und 456 Tausendstel", stellst sie mit einem Punkt als Dezimaltrennzeichen dar, also 123.456 (deutsche Schreibweise 123,456) und tust so, als ob der Punkt hier kein Dezimaltrennzeichen wäre, sondern ein Tausenderpunkt?

            Dann stell mir auf die Art doch bitte mal die Zahl 1234567 mit Tausenderpunkten dar :-)



            Zur Präzision: Das Beispiel im Handbuch hat Präzision 1, zeigt aber keine Nachkommastellen. Ist da das Handbuch falsch?
            [mit dem "HALT"-Nachtrag von oben: dann stellt das Beispiel evtl. 3 Nachkommastellen dar, das passt aber auch nicht zur Präzision 1. Auch dann wäre das Handbuch falsch.]

            Vorschlag: Warum kann man "Präzision" nicht einfach in "Nachkommastellen" umbenennen, oder es wenigstens so im Handbuch beschreiben?
            ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

            Kommentar


              #7
              In einem uralten Thread hab' ich die Beschreibung von stringformat() im Handbuch auch schon mal bemängelt. Ich finde, an dieser Stelle ist wirklicher Handlungsbedarf. Ich find's nämlich gar nicht lustig, sich durch Trial and Error in Sonderfällen an das gewünschte Ergebnis herantasten zu müssen. Jeder Versuch heißt schließlich, den eibPC neu zu flashen...

              Kommentar


                #8
                Hallo Michael,

                Kannst Du auf meine Punkte oben bitte noch mal eingehen? Gibt es nun eine echte Möglichkeit für Tausenderpunkte?

                Und das Beispiel auf 118:
                da steht stringformat(......,4,4,8,1)

                Die Ausgabe zeigt aber Werte wie "345.065"

                Das ist aber so oder so nicht "EINE" Nachkommastelle. Entweder sind es 3 mit "geschummeltem" Tausenderpunkt, oder 0 mit echtem Tausenderpunkt.
                Zuletzt geändert von Uwe!; 13.04.2015, 12:18.
                ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

                Kommentar


                  #9
                  Ich sitze zufällig an dem gleichen Thema der Tausenderdarstellung bei Verbräuchen. Ein konkreter Lösungsvorschlag wäre daher top.

                  Stringformat() empfinde ich als einer der komplexesten EbPC Funktion mit der am wenig nachvollziehbarsten Erklärung. Ich komme hier auch immer nur mit Try & Error weiter. Bitte unbedingt die Erklärung für Normalsterbliche anpassen und zahlreiche Beispiele einarbeiten.

                  Kommentar


                    #10
                    Ich werte Michaels Schweigen mal als "echte Tausenderpunkte gibt's nicht", dass würde jedenfalls auch zu allen bisher gewonnenen Erkenntnissen über stringformat passen.
                    Das Beispiel auf S.118 scheint aber so oder so falsch zu sein.

                    Featurewunsch: Formatierung a la Excel: aus 1234567,890 wird z. B. mit "+###.###.###,# kWh" ein "1.234.567,9 kWh"
                    Also zumindest Formatierung mit einer "Schablone" nicht mit ",1,3,2,4" muss ja nicht exakt der Excel-Logik entsprechen (die kann ja auch noch viel mehr, wie z. B. Farben oder bedingte Formatierung, was natürlich auch alles schön wäre....)
                    ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

                    Kommentar


                      #11
                      Zitat von Uwe! Beitrag anzeigen
                      Ich werte Michaels Schweigen mal als "echte Tausenderpunkte gibt's nicht", ....)
                      Sorry habe ich vergessen zu beantworten-war fast zwei Wochen ohne Unterbrechung unterwegs. Mit deiner Anmerkung hast du Recht:1000er Punkte gibt es nicht, sondern kann nur über den Weg wie gezeigt gemacht werden.
                      offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                      Enertex Produkte kaufen

                      Kommentar


                        #12
                        ok, Danke für die Klarstellung!

                        Und Handbuch: S. 118 ist doch fehlerhaft,oder?
                        ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

                        Kommentar


                          #13
                          Zitat von Uwe! Beitrag anzeigen
                          Handbuch: S. 118 ist doch fehlerhaft,oder?
                          Muss ich erst checken.
                          offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                          Enertex Produkte kaufen

                          Kommentar


                            #14
                            Zitat von enertegus Beitrag anzeigen
                            Muss ich erst checken.
                            Ich hielte es auch für sinnvoller, an dieser Stelle beispielhaft drei verschiedene Formatierungen (eigentlich bräuchte es mehr) zu zeigen, anstatt drei mal die selbe Formatierung...

                            Kommentar

                            Lädt...
                            X