Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
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!
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!
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"?
% 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
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!
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...
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.
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!
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.
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...
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar