LabVIEWForum.de
Probleme mit "Fract/Exp String To Number Function " - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Probleme mit "Fract/Exp String To Number Function " (/Thread-Probleme-mit-Fract-Exp-String-To-Number-Function)



Probleme mit "Fract/Exp String To Number Function " - Schmankerl - 23.01.2014 10:34

Hallo,

ich lese momentan GPS Daten aus und habe da ein nützliches Vi auf der Seite von Ni gefunden.

http://www.ni.com/example/27197/en/

Der NMEA String der ausgelesen wird sieht z.B. so aus:

$GPRMC,092545.000,A,4906.2757,N,00735.5234,E,0.00,70.30,230114,,,A*5B

Das Problem:

Im Vi kommt die Funktion Fract/Exp String To Number Function vor. Die macht mir aus dem String

4906.2757 -- > 4906,0000

Wieso hackt die mir die genaue Angabe ab und macht 0000 ?

Verstehe die Funktion wohl nicht ganz: Die wandelt mir doch einen String von Zahlen in Zahlen um ("returns it in number")?
Wie komme ich zu meinem Ziel der vollständigen Darstellung?

Vielen Dank und Grüße


RE: Probleme mit "Fract/Exp String To Number Function " - GerdW - 23.01.2014 10:40

Hallo Schmankerl,

lies dir bitte die komplette Hilfe zu dieser Funktion durch! Die hat mehr als nur einen Eingang...

Zitat:4906.2757 -- > 4906,0000
Wieso hackt die mir die genaue Angabe ab und macht 0000 ?
Ich habe dir mal die entsprechende Stelle markiert, falls du diese bisher nicht bemerkt haben solltest...

Außerdem würde ich dir eher sowas hier empfehlen:
[attachment=48172]
Lies dir bitte auch hier die Hilfe zur Funktion durch - und auch die zum hier verwendeten Formatstring!


RE: Probleme mit "Fract/Exp String To Number Function " - Schmankerl - 23.01.2014 12:39

Zu meiner Lösung:

Wenn ich das richtig verstanden habe kann ich den Eingang als "False" machen, dann passiert "If FALSE, the decimal separator is a period. ".
Nun erhalte ich: 4906,2757

Verstehe die Hilfe aber noch nicht ganz: Wenn ich "Falsch" als Eingang habe, ist das Dezimaltrennzeichen ein Punkt statt Komma?
Dann müsste sich es sich doch gar nicht ändern?
Also entweder: 4906.2757 -- > 4906.2757
Oder 4906.2757 --> 4906.0000 sein?


Zu deiner Lösung:

Die habe ich mal nachgebaut, funktioniert ganz gut, bis auf:

a) Obwohl ich im format-string eingestellt habe: %.;%f erhalte ich 4906,2757 . Da müsste doch jetzt ein Punkt sein?

Laut der Hilfe zu Format Specifier Syntax unter Floating-Point (%5.1f): 1 specifies the number of digits to the right of the decimal, or precision

b) Folglich müsste ich doch wenn ich mache %.;%.2f 2 Stellen nach dem Komma angezeigt bekommen? Erhalte aber weiterhin 4 Stellen

Stehe iwie auf dem Schlauch...


RE: Probleme mit "Fract/Exp String To Number Function " - jg - 23.01.2014 12:53

(23.01.2014 12:39 )Schmankerl schrieb:  Verstehe die Hilfe aber noch nicht ganz: Wenn ich "Falsch" als Eingang habe, ist das Dezimaltrennzeichen ein Punkt statt Komma?
Dann müsste sich es sich doch gar nicht ändern?
Also entweder: 4906.2757 -- > 4906.2757
Oder 4906.2757 --> 4906.0000 sein?
Nein. Die Hilfe bezieht sich hierbei auf die Darstellung des Dezimaltrennzeichens in einem String.
Bei einem Numeric-Feld stellt LabVIEW üblicherweise die Zahl so da wie in den Ländereinstellungen des Betriebssystems hinterlegt, bei einem deutschen Windows also überlicherweise ein Komma.

Du kannst das global in LabVIEW ausschalten (Tools -> Options -> Front Panel -> Use localized decimal point)
(23.01.2014 12:39 )Schmankerl schrieb:  a) Obwohl ich im format-string eingestellt habe: %.;%f erhalte ich 4906,2757 . Da müsste doch jetzt ein Punkt sein?
s. oben
(23.01.2014 12:39 )Schmankerl schrieb:  Laut der Hilfe zu Format Specifier Syntax unter Floating-Point (%5.1f): 1 specifies the number of digits to the right of the decimal, or precision

b) Folglich müsste ich doch wenn ich mache %.;%.2f 2 Stellen nach dem Komma angezeigt bekommen? Erhalte aber weiterhin 4 Stellen
Auch hier bezieht sich die Hilfe auf eine Wandlung Zahl Nach String. In der umgekehrten Richtung interessiert sich LabVIEW nicht für die Stellen, es wird auf jeden Fall alles gewandelt. Deshalb langt hier die Angabe %f

Gruß, Jens