INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

gelesene txt in Nachkomma stellen ungenau



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

27.06.2006, 13:18 (Dieser Beitrag wurde zuletzt bearbeitet: 27.06.2006 13:19 von Lorien.)
Beitrag #1

Lorien Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Jun 2006

8.6
2006
kA


Deutschland
gelesene txt in Nachkomma stellen ungenau
Hallo,

ich beschäftige mich erst seit kurzem mit LabVIEW (für meine Diplomarbeit) und habe ein Problem beim Auswerten meiner Messdateien.

Ich will ein txt-file als Array einlesen und dann Mittelwerte berechnen.
Dafür habe ich mir ein einfaches txt erstellt mit einfachen Zahlen (z.B. 2,0 und 4,6) drin.
Dann habe ich die Funktion "Read from Spreadsheet" verwendet um die Datei einzulesen.
Als ich feststellte das die Rechnungen von meinen mit Excel gemachten Rechnungen abweichen, habe ich mir das einglesene Array wieder speichern lassen. (mit %.10f als Genauigkeit) Dort war aus meiner 4,6 eine 4,5999999147 geworden und aus einer 2,5 eine 2,5000000078. Die 2,0 bleibt gleich. Wacko

Woran könnte das liegen?

Danke schon einmal

Lorien
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
27.06.2006, 13:25
Beitrag #2

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
gelesene txt in Nachkomma stellen ungenau
Es legt an der Genauigkeit der Float (Single) bzw. Double- Zahlen.
Wenn du es noch genauer haben willst, kannst du diese als Integers mit einem Skalenfaktor abspeichern oder Extended Precision verwenden.

Gruss, Eugen

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.06.2006, 13:37
Beitrag #3

Lorien Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Jun 2006

8.6
2006
kA


Deutschland
gelesene txt in Nachkomma stellen ungenau
Erstmal danke, so was habe ich vermutet.

Wie mache ich das (etwas genauer: welche Funktion kann ich verwenden? Muss ich die Daten erst convertieren?)?

Habe auch mal versucht die Rechnungen gleich (ohne speichern und wieder einlesen) zu berechnen, war das gleiche Problem. Scheinen also wirklich auch Rundungen beim Rechnen zu sein? Vielleicht Wurzel ziehen?

Lorien
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.06.2006, 14:27
Beitrag #4

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
gelesene txt in Nachkomma stellen ungenau
Hab es mit Single Precision probiert und dein Problem gesehen (mit Double Precision aber nicht).
Mein Vorschlag: verwende überall in deinem VI nur Double-Zahlen

Ansonsten Quellcode her.

Gruss

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.06.2006, 16:07
Beitrag #5

Lorien Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Jun 2006

8.6
2006
kA


Deutschland
gelesene txt in Nachkomma stellen ungenau
Habe gestern schon mal probiert nen anderes Zahlenformat einzubauen, weiss aber nicht wo genau und wie.

Darum hier der Quellcode und die Test-txts mit den Ergebnissen des Programms.

[attachment=28351:attachment]
[attachment=28352:attachment]
[attachment=28353:attachment]
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.06.2006, 16:36
Beitrag #6

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
gelesene txt in Nachkomma stellen ungenau
Also ich habe folgendes gemacht (siehe Bild) und keinen Unterschied zwischen der eingelesenen und abgespeicherter Datei festgestellt.

Gruss, Eugen


Angehängte Datei(en) Thumbnail(s)
   

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
27.06.2006, 18:22
Beitrag #7

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
gelesene txt in Nachkomma stellen ungenau
<div align="left">Hallo,

ich habe mir jetzt zwar nicht dein VI angeschaut, aber mal eine prinzipielle Bemerkung:

Bis auf wenige mathematische Sonderprogramme (mir fällt da gerade MATHEMATICA ein) kommt es bei allen Programmiersprachen bei der Darstellung von Fließkommazahlen im Computer zu "Ungenauigkeiten", je nachdem auf wie viele Stellen man schaut. Das hängt mit der Art der Darstellung von Fließkommazahlen im Dezimalformat im Binärformat des Computers dar.

Es ist also nicht sonderlich erstaunlich, wenn vor allem bei "Single float" (4 bytes) aus einer 4,6 eine 4,5999999147 wird. Siehe hierzu z.B. auch diese Seite von NI oder auch diese Seite.

Eugen hat prinzipiell recht, "Double float" (8 bytes) Variablen haben eine wesentlich höhere Genauigkeit, wenn man das Ganze aber mit meinetwegen 25 oder sogar mehr Nachkommastellen macht, sieht man wieder minimale Abweichungen.

Also, mit diesen "Ungenauigkeiten" muss man leben.

MfG
Jens</div>

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.06.2006, 18:38
Beitrag #8

Lorien Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Jun 2006

8.6
2006
kA


Deutschland
gelesene txt in Nachkomma stellen ungenau
Das mit den Funktionen LabVIEW Measurement File scheint zu klappen.

Habe noch mal ne .vi in der nur Read from Spreadsheet File und gleich danach wieder gespeichert wird (Write spreadsheet file) und auch hier schreibt er in die Nachkommastellen andere Werte. Muss wohl an den LabVIEW Funktionen selber liegen.Wacko


Sonstige .vi  Read_Write_File.vi (Größe: 13,38 KB / Downloads: 227)


Ungenauigkeiten sind natürlich nicht zu vermeiden, aber bei der 10. Stelle würde ich lieber keine haben.
Kann ich die read und write spreadsheet mit "double float" verwenden? Einfach in den Formatstring mit rein schreiben?


Lorien
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.06.2006, 18:54
Beitrag #9

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
gelesene txt in Nachkomma stellen ungenau
<div align="left">Hallo, Lorien,

kann mir dein VI leider nicht anschauen, habe hier am Rechner kein LabVIEW.

Prinzipiell sollten bei Verwendung von mindestens "double" 10 Nachkommastellen korrekt dargestellt werden.

Problen sind dann wohl die Fuktionen "Read form Spreadsheet File" und "Write to Spreadsheet File". Diese benutzen (laut Online-Doku von NI) "single" float Zahlen. Genauigkeit dieser ca. 6-7 Nachkommastellen, also viel zu wenig für 10 Nachkommastellen (s. diese Link)

Da habe ich folgende Empfehlung: Schau dir doch mal den Code dieser VI's an, speichere sie unter einem neuen Namen und ändere die Stellen, wo "single" Variablen stehen auf "double".

LabVIEW kann natürlich beim Einlesen von Daten auch gleich Zahlen mit "double"-Genauigkeit einlesen (ist ja in der Regel erst mal ASCII-Text, der dann entsprechend gewandelt wird). Und wenn LabVIEW in einem der "höheren" VI's die entsprechenden Möglichkeiten nicht bietet, dann muß man es halt selber von Hand machen.

MfG
Jens</div>

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.06.2006, 20:22
Beitrag #10

Lorien Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Jun 2006

8.6
2006
kA


Deutschland
gelesene txt in Nachkomma stellen ungenau
Ok, ich probier mal die vi's zu ändern.

Hoffentlich klappts.

Thx schon mal.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
Exclamation Wert mit 3 Stellen herrausfiltern Dany83 9 4.312 08.09.2015 21:14
Letzter Beitrag: Trinitatis
  Numerisches Anzeigeelement von 2 Stellen im code beschreiben Mrindfleisch 2 4.100 17.02.2011 15:54
Letzter Beitrag: Mrindfleisch
  Eigene Marker an definierten Stellen eines Schiebereglers? Sascha_ 2 3.673 17.01.2011 09:27
Letzter Beitrag: Sascha_
  Werte in bestimmten Stellen einer Tabelle eintragen Napoleon 11 9.389 13.01.2011 16:22
Letzter Beitrag: GerdW
  Werte in einem Array an definierten Stellen einfügen stud_lab 9 8.528 24.07.2008 14:26
Letzter Beitrag: Kvasir
  Fract/Exp String To Number hat immer nur 6 Stellen. Y-P 2 4.090 23.04.2008 15:18
Letzter Beitrag: Y-P

Gehe zu: