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 

Dieses Thema hat akzeptierte Lösungen:

LabView verrechnet sich?!



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.02.2015, 20:12 (Dieser Beitrag wurde zuletzt bearbeitet: 27.02.2015 20:13 von Andre_A.)
Beitrag #1

Andre_A Offline
LVF-Grünschnabel
*


Beiträge: 18
Registriert seit: Nov 2012

2013
2011
EN


Deutschland
LabView verrechnet sich?!
Hallo zusammen.

Ich bin ein wenig verwirrt, was das Problem angeht, über das ich heute gestolpert bin.
Ein Student hat ein (extrem schlechtes!) VI geschrieben, um eine Zahl in ein Array aus Ziffern umzuwandeln.
Die Umsetzung ist nicht das Problem, sondern das Ergebnis.
Das VI ist im Anhang. Die äußere FOR-Schleife habe ich darum gelegt, um das zu untersuchen.
Wie das ganze funktionieren soll, sei mal am Beispiel der Zahl 13 dargestellt, (die umzuwandelne Zahl
ist der Laufindex der For-Schleife):
1. 13/10 = 1,3 > 1 ; While Schleife terminiert nicht, 1,3 ins shift
2. 1,3 - [floor(1,3) = 1] = 0,3
3. 0,3 * 10 = 3
4. floor (3) = 3 -> ins Array

zweiter Durchlauf:
5. 1,3/10 = 0,13 < 1; Schleife terminiert.
6. 0,13 - [floor(0,13) = 0] = 0,13
7. 0,13 * 10 = 1,3
8. floor (1,3) = 1 -> ins Array

Ergebnis: ein Array mit [1] und [3] nach dem umkehren. Soweit so gut.
Das Problem ist, das gleiche Prinzip funktioniert nicht mit den Zahlen 12,14,23,24,28 .....
Mit diesen Zahlen <30 habe ich das mal getestet. Habe auch Zwischenergebnisse mit Haltepunkten u.ä. ausgewertet.
Bei der Zahl 12 z.B. liegt der Fehler in floor(2) = 1 laut Labview...

Mal abgesehen davon, dass die Umsetzung schlecht ist, kann jemand erklären, warum die Ergebnisse so sind, wie sie sind ?

Gruß,
Andre


Angehängte Datei(en)
13.0 .vi  abrunden.vi (Größe: 9,95 KB / Downloads: 150)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.02.2015, 21:10 (Dieser Beitrag wurde zuletzt bearbeitet: 27.02.2015 21:14 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.399
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: LabView verrechnet sich?!

Akzeptierte Lösung

Hallo Andre,

Wikipedia hat da eine gute Übersicht zum Einstieg in das Rechnen mit Gleitkommazahlen. Lesenswert!

Und in meiner Signatur findest du einen englischsprachigen Artikel zum Thema!

Allgemein: Dein Problem tritt in jeder Programmiersprache auf, die Floats nach IEEE754-Standard benutzt! Unendliche (Binär-)Brüche lassen sich nun mal schlecht in 64bit darstellen…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.02.2015, 21:29
Beitrag #3

macmarvin Offline
CLA
***


Beiträge: 445
Registriert seit: Sep 2006

2014
2004
EN

81373
Deutschland
RE: LabView verrechnet sich?!
Servus,

ist ein numerisches Problem, wie Gerd schon sagte.
Die vermeindliche 2 mit vielen Nachkommastellen dargestellt:
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.02.2015, 21:37
Beitrag #4

Andre_A Offline
LVF-Grünschnabel
*


Beiträge: 18
Registriert seit: Nov 2012

2013
2011
EN


Deutschland
RE: LabView verrechnet sich?!
Hallo und danke für die Antworten.

Ich kenne das Problem natürlich aus anderen Programmiersprachen
insbesondere beim Versuch Gleichheit zweier Zahlen zu Prüfen.
Es ist nur das erste mal, dass mir dies in LV vorgekommen ist, dazu noch
an einer Stelle, an der ich es so nicht erwartet hätte. Da lobe ich mir doch
manchmal die standardmäßige wissenschaftliche Notation...

Gruß,
Andre
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.02.2015, 11:36
Beitrag #5

GerdW Offline
______________
LVF-Team

Beiträge: 17.399
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: LabView verrechnet sich?!
Hallo Andre,

Zitat:dazu noch an einer Stelle, an der ich es so nicht erwartet hätte.
Wieso das? Dort wird fortgesetzt durch 10 geteilt: Dividieren durch 10 führt zu unendlichen Binärbrüchen und damit quasi sofort zu Rundungsfehlern…

Zitat:Da lobe ich mir doch manchmal die standardmäßige wissenschaftliche Notation...
Die Art und Weise, wie du eine Zahl darstellen lässt, ändert überhaupt nichts an den zugrundeliegenden Rechenalgorithmen…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.03.2015, 23:26
Beitrag #6

teegee Offline
LVF-Grünschnabel
*


Beiträge: 49
Registriert seit: Jan 2015

2014
2003
EN


Sonstige
RE: LabView verrechnet sich?!
Hier ist ein Paket, das verschiedene Methoden anbietet, Gleitkommazahlen zu vergleichen:
https://lavag.org/topic/18712-cr-floating-point-almost-equal/
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.03.2015, 11:29 (Dieser Beitrag wurde zuletzt bearbeitet: 05.03.2015 11:30 von Achim.)
Beitrag #7

Achim Offline
*****
*****


Beiträge: 4.219
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
RE: LabView verrechnet sich?!
Alternativ:

14.0 .vi  ziffern.vi (Größe: 10,25 KB / Downloads: 162)

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
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
Question LabView hängt sich auf, läuft nach Mausklick auf Frontpanel wieder.... dezi 8 7.207 08.10.2015 10:07
Letzter Beitrag: rolfk
  LabVIEW lässt sich nicht mehr beenden Hasenfuss 0 3.214 04.07.2015 16:58
Letzter Beitrag: Hasenfuss
  LabView lässt sich nicht mehr beenden Hasenfuss 2 3.517 30.09.2013 08:23
Letzter Beitrag: Kinx
  LabView hängt sich auf Hasenfuss 4 3.887 12.01.2013 15:09
Letzter Beitrag: jg
  Labview hängt sich auf Scherni 18 11.965 21.09.2012 06:35
Letzter Beitrag: Scherni
  Labview lässt sich nicht bedienen CrazyDanceBoy 3 4.243 26.12.2011 23:17
Letzter Beitrag: CrazyDanceBoy

Gehe zu: