LabVIEWForum.de - String mit 2 Nachkommastellen anzeigen

LabVIEWForum.de

Normale Version: String mit 2 Nachkommastellen anzeigen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Forum,

ihr habt mir schon sehr oft passiv geholfen. Heute brauche ich sogar aktive Hilfe:

Ich lasse mir Daten als 1-D Array String auf dem Frontpanel anzeigen. Die haben aber relativ viele Nachkommastellen und ich würde gerne auf zwei Stellen nach dem Komma runden oder zur Not einfach abschneiden. Die Werte befinden sich aber im 10er und 100er und 1000er Bereich, sodass ich nicht einfach nach xx,xx Stellen abschneiden kann.
Gibt es da eine Möglichkeit oder muss ich den String erst in einen Double umwandeln zum runden?

Vielen Dank im Voraus!
Anne
Ich würde es mit Wandeln in DBL und wieder zurück machen.
Aber als Q'n'D Lösung mit abschneiden:
[attachment=47983]
Danke erstmal.

Es muss auch nicht unbedingt in der Anzeige ein String sein. Das ist mir total egal, ob das String oder Double ist, Hauptsache es hat nur zwei Nachkommastellen.
Die Arrays sind auch bis auf den ersten Eintrag immer leer. Wenn es also eine Lösung für den Array gäbe, wäre das natürlich Premium. Aber wenn es "nur" eine schicke Lösung ohne Umwandlung für ein einziges Element gibt, ist das extrahieren dieses einen Wertes aus dem sonst leeren Array ja die einfachste Übung.
(10.01.2014 16:56 )anne schrieb: [ -> ]Es muss auch nicht unbedingt in der Anzeige ein String sein. Das ist mir total egal, ob das String oder Double ist, Hauptsache es hat nur zwei Nachkommastellen.



Hallo Anne,

wenn du denn auch ein DBL-Array verwenden kannst, dann kannst du mit der rechten Maus auf ein Element des Arrays gehen und im Kontextmenü "Format und Genauigkeit" auswählen und dort genau 2 Kommastellen anzeigen.

Dann wäre dein Problem doch schon gelöst.




Gruß, Marko
Alternativ zu McMarvin:
[attachment=47986]
@Marko

So mache ich es schon bei den Daten, die ich durch Berechnung als Double auslesen kann. Wenn ich allerdings nur einen Wert aus dem Datenstrang rausziehe, ist dieser immer ein Stringarray.
Ich frage mich jetzt nur ob es vom Rechenaufwand her günstiger ist, diesen
a) in einen Double umzuwandeln und dann eben nur über die Eigenschaften die Nachkommastellen anzupassen oder
b) irgendwie im String nach dem "," zu suchen und dann "alle Zeichen bis dahin plus 2" anzeigen zu lassen (das kriege ich allerdings auch nicht hin)

Was meint ihr ist schneller?

Danke!
(10.01.2014 20:14 )anne schrieb: [ -> ]Was meint ihr ist schneller?
Hängt stark von der Größe deiner Arrays ab. Ich gehe davon aus, dass Wandlung in Zahlen insgesamt schneller geht, denn:

a) bei der String-Lösung (s. macmarvin) musst du dich per For-Schleife durch jedes Element hangeln und dort die Strings manipulieren

b) bei der Zahl-Lösung (s. Lucki) kannst du per LabVIEW-Primitives das gesamte Array auf einmal behandeln. Aus Erfahrung sind diese Funktionen deutlich schneller als Operationen in Schleifen.

Unterschiede merken wirst du aber sicher erst ab ein paar 10000 Elementen, und die will sowieso niemand als Array im Frontpanel sehen.

Gruß, Jens

EDIT: Deinen b-Ansatz hat dir macmarvin programmiert (Komma suchen...), was kriegst du daran nicht hin?
Ach, da hatte ich auch Tomaten auf den Augen. Die Lösung für b) steht ja tatsächlich schon da...
Im Array ist ja immer nur der erste Eintrag belegt, von daher sollte die Schleife nicht zu lange dauern.
Aber dann ist es wohl trotzdem am schnellsten und einfachsten die Strings für die 30-40 Anzeigeelemente in Doubles umzuwandeln.

Herzlichen Dank für eure Hilfe Smile
Hallo Anne,

nur mal so am Rande ein freundlich gemeinter Rat:

Gerade, was Geschwindigkeiten angeht, kann man recht einfach das programmierte in eine Schleife legen und ein paar -zig hundert oder tausend oder hunderttausend mal durchlaufen lassen.
So bekommt man sehr schnell ein Gefühl, was schneller ist, auch ohne eine konkrete Zeitmessung - vor allem ist es einprägsamer, als wenn einem einer sagt: nimm diese oder jene Lösung.


Gruß, Marko
Das Umwandeln ohne For-Schleife hat allerdings den Nachteil, dass das Handling des Dezimaltrenners schlecht komplett unabhängig von System- und LV-Einstellungen geht. Zumindest kenne ich keine schöne Lösung. Die Stringfunktionen bei denen man ordentlich per Formatstring die Umwandlung steuern kann, mögen keine Arrays.
Referenz-URLs