LabVIEWForum.de - String Umwandlung

LabVIEWForum.de

Normale Version: String Umwandlung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo zusammen,

ich habe bei meinem Programm festgestellt, das die Kommastellen vom Stringwert bei Umwandlung in einen Numerischen Wert reduziert werden.
Eigentlich sollte es so nicht sein.

Hat jemand Erfahrungen damit?

Habe dazu mal ein Vi beigefügt welches das verdeutlicht.

Stringwert = +1.88046074E+01
Numwert = 18.8046
Sollte aber idealerweise 18.8046074 oder mehr sein, je nach ausgelesenem Stringwert.

Bedanke mich schon mal

Gruß

simcum
Hallo simcum,

du benutzt nach eigener Aussage seit 15 Jahren LabVIEW und weißt nicht, dass man die Formatierung von Zahlenwerten in einem numerischen Indicator anpassen kann???

Versuche es doch einfach mal mit einer Anzeigeeinstellung von mehr als nur 6 Dezimalstellen…
Hallo GerdW,

ich musste bis dato noch nie die Angabe nach der 5. Kommastelle brücksichtigen.
Daher kannte ich das noch nicht.
Und ja, ich schäme mich in Grund und Boden.
Mann lernt nie aus danke dir für die Info.

Gruß

simcum
Hallo GerdW,

gibt es denn eine Möglichkeit, alle erzeugten numerischen Elemente (z.B. dbl) standardmäßig auf 10 nachkommastellen zu setzen?
Oder muss ich das für jedes Element separat einstellen?
Wenn ich die Werte über den gesammten Ablauf überprüfen möchte.

Gruß

Simcum
Hallo GerdW,

so jetzt habe ich alle indikatoren der Numerischen Elemente auf den gewünschten Wert gesetzt.

Leider werden die Werte in einem Subvi bei der Num zu String Umwandlung gekürzt.

Dazu habe ich den Subvi mal angefügt.

Ist hierbei etwas zu beachten, das ist der letzte Abschnitt in der Software vor der Speicherung.

Fpr deine Hilfe wäre ich sehr Dankbar

Gruß

Simcum
Hallo simcum,

Zitat:Leider werden die Werte in einem Subvi bei der Num zu String Umwandlung gekürzt.
Weil du das genau so programmiert hast!

Lese dir doch einfach mal die LabVIEW-Hilfe bzgl. der Formatcodes durch!!!

Und warum muss dieses subVI so kompliziert sein?
[attachment=62898]
Um ein Array in einen Spreadsheet-String umzuwandeln gibt es doch eine fertige Funktion!

Zitat:Und ja, ich schäme mich in Grund und Boden.
Du musstest in 15 Jahren nie Zahlen in Strings und umgekehrt umwandeln???
Hallo sicum,

ein bissl Spass und Humor muss jetzt schon sein :-)

(07.05.2025 11:53 )simcum schrieb: [ -> ]Eigentlich sollte es so nicht sein.
wie sollte es denn sein? Angel_not

Zitat:Hat jemand Erfahrungen damit?

ja (vielleicht) - und ich bin ganz sicher nicht der Einzige.

(07.05.2025 15:43 )GerdW schrieb: [ -> ]
Zitat:Und ja, ich schäme mich in Grund und Boden.
Du musstest in 15 Jahren nie Zahlen in Strings und umgekehrt umwandeln???

Gerd, du machts es dir zu einfach 2hands#

Es kommt natürlich auf die Anforderungen an.
Unter Umständen ist eine Zahlenumwandlung von String nach Double (oder Single) und zurück etwas problematisch. Kaum etwas ist wirklich einfach - auch das nicht.

Der mir bekannte schwierigste Fall ist folgender:
Eine Zahl soll als String dargestellt werden. Es sollen in dem String jedoch nur so viele Stellen dargestellt werden, damit bei einer Rückumwandlung von dem String in einen Double (oder Single) ganz exakt der gleiche Zahlert heraus kommt (ein Vergleich mit = also True liefert. Es ist nicht erlaubt einfach konstant 16 Stellen auszugeben. Es ist nicht erlaubt mehr stellen auszugeben, als unbedingt notwendig.

Viel Spass ...
Hallo Martin,

Zitat:Gerd, du machts es dir zu einfach 2hands#

Es kommt natürlich auf die Anforderungen an.
Für mich las sich die Frage wie die Anforderung "erklär mir mal, wie man mehr als die Default-Anzahl von Dezimalstellen formatiert"…
Und da erwarte ich von jemanden mit 15+ Jahren Erfahrung mit LabVIEW (und wahrscheinlich noch anderen Programmiersprachen) schon etwas mehr "Grundbildung"!

Zitat:Der mir bekannte schwierigste Fall ist folgender:…
Da gebe ich dir uneingeschränkt recht: floats als "lesbaren Text" zu speichern hat seine Fallstricke…
(07.05.2025 19:51 )GerdW schrieb: [ -> ]Hallo Martin,

Zitat:Gerd, du machts es dir zu einfach 2hands#

Es kommt natürlich auf die Anforderungen an.
Für mich las sich die Frage wie die Anforderung "erklär mir mal, wie man mehr als die Default-Anzahl von Dezimalstellen formatiert"…
Und da erwarte ich von jemanden mit 15+ Jahren Erfahrung mit LabVIEW (und wahrscheinlich noch anderen Programmiersprachen) schon etwas mehr "Grundbildung"!

Zitat:Der mir bekannte schwierigste Fall ist folgender:…
Da gebe ich dir uneingeschränkt recht: floats als "lesbaren Text" zu speichern hat seine Fallstricke…


Hallo zusammen,
für mich las sich die Frage wie die Anforderung "erklär mir mal, wie man mehr als die Default-Anzahl von Dezimalstellen formatiert"…

Nein so war das nicht gemeint, vielleicht habe ich mich auch falsch ausgedrückt.
Mein Ziel ist es nur den Numerischen Wert mit den existierenden nachkommastellen in einen String umzuwandeln.
Dabei können die Nachkommastellen variieren.
Bin davon ausgegangen das der Format %f genau das so umsetzt, hat es aber nicht. Die Nachkommastellen werden auf die 6. Kommastelle gekürzt.
Das konnte ich mir nicht erklären und wollte nur wissen, wie mann das anders umsetzen könnte.
Sicher wenn ich die Anzahl der Nachkommastellen vorgebe geht das auch, aber dann ist es so wie du schon angedeutet hast, das ich eventuell mehr oder weniger Nachkommastellen erhalte als vorhanden.
Wie bereits geschrieben war das für meine Anwendungen bis jetzt nicht relevant, weil ich so viele Kommastellen nicht benötigt habe.
Deshalb habe ich mir auch keine Gedanken darüber gemacht, bis jetzt.

Ich möchte auch anmerken, das ich seit 15 Jahren im Forum registriert bin aber das heißt nicht das ich 15 Jahre durchgehend LabView programmiere.
LabView ist eine Anwendung, was ich nebenbei bei Bedarf und eher ganz selten einsetze. Deshalb habe ich keine Routine dafür aufbauen können.
Ich muss mich immer wieder neu einarbeiten. Bitte urteilt nicht zu hart mit mir.

Ich danke euch aber sehr für eure Unterstützung und das ihr das seit Jahren auch macht.
Mir hat das immer sehr geholfen.

Mit freundlichen Grüßen

Simcum
Hallo simcum,

Zitat:Sicher wenn ich die Anzahl der Nachkommastellen vorgebe geht das auch, aber dann ist es so wie du schon angedeutet hast, das ich eventuell mehr oder weniger Nachkommastellen erhalte als vorhanden.
Ein float hat keine variable Anzahl von Nachkommastellen!
Ein SGL hat 23 bit Mantisse, ein DBL hat 53 bit. Jeder float hat (potenzielle) Probleme beim umwandeln in einen String in Dezimal-Darstellung. Grundregeln im Umgang mit float-Werten!

Du willst eine bestimmte Anzahl Nachkommastellen, egal ob 6 oder 13: du musst das passend programmieren! Schon mal über %e nachgedacht? Oder über die diversen Formatierungsoptionen, die alle in der Hilfe erläutert werden?
Seiten: 1 2
Referenz-URLs