LabVIEWForum.de - Zahlen in Strings formatieren

LabVIEWForum.de

Normale Version: Zahlen in Strings formatieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hi zusammen!

Hinweis:
Habt ihr weitere Vorschläge/Fragen, kann der Beitrag hier vom Team editiert werden. Evtl. entsteht daraus dann ein Tutorial für die entsprechende LVF-Rurik.


Hier findet ihr eine kurze Übersicht, wie ihr Zahlen in Strings konvertieren und entsprechend formatieren könnt. Dabei beschränke ich mich auf die wichtigsten Formatierungen.

Einfache Konvertierungen könnt ihr direkt über die "Zahl nach String"-VIs erledigen. Hier geht es jedoch darum, erweiterte Formatierungen kennen zu lernen.
Die Formatierung kann sehr leicht über das VI Format Into String (Reiter: Strings) vorgenommen werden ohne langsame reguläre Ausdrücke verwenden zu müssen.

Eine Integer-Zahl wird durch den Platzhalter %d repräsentiert, eine Double-Zahl durch den Platzhalter %f.
An dieser Stelle wird im Format-String eure formatierte Zahl eingefügt. Die Groß-/Kleinschreibung ist in LabVIEW nicht relevant.
In Format-Strings könnt ihr auch beliebigen Text eingeben, der als gewöhnlicher String interpretiert wird.

Ein Beispiel, wie das am Ende aussehen kann. Ich verzichte auf große Erklärungen und gebe anschließend eine Übersicht zum schnellen Nachschlagen.
[attachment=29434]

Allgemeine Syntax

%[Flags] [Breite] [.Genauigkeit]

Einfache Beispiele

[code]Zahl
Hallo Matze,

schöne Übersicht der wichtigsten Formatierungen!
Eine würde ich aber gern noch anfügen, für alle, die Messgeräte an ein wie deines auf "Deutsch" konfiguriertes Windows anschließen wollen:
%.; - setzt das Dezimaltrennzeichen auf Punkt für alle nachfolgenden Zahlen (wird von so ziemlich allen Messgeräten erwartet)
%,; - setzt das Dezimaltrennzeichen auf Komma für alle nachfolgenden Zahlen (wird im o.a. Fall gern von Excel und Konsorten erwartet)
Hallo Gerd,

ich habe es oben ergänzt. Danke.
Ein (ärgerliches) Detail am Rande... das Dezimaltrennzeichen von Zeitformatierungen lässt sich mit %.; nicht umschalten. Es wird in Zeitformatierungen anscheinend immer die globale LV-Option (useLocaleDecimalPt) benutzt.
(z.b. %.;%<%Y-%m-%dT%H:%M:%S%3u>T trennt die Sekundenbruchteile gemäß LV-Option nicht mit ".")
Danke macmarvin für den Hinweis. Das ist wirklich suboptimal.
Ich habe es oben eingefügt, damit alles beisammen ist.
Referenz-URLs