08.09.2015, 11:07
Beitrag #1
|
LabViewPete
LVF-Gelegenheitsschreiber
Beiträge: 74
Registriert seit: Jul 2015
7.1
2015
DE
|
Vergleich zweier Zahlen
Hey Leute,
ich habe zwei Zahlen vom Datentyp SGL, deren Wert ich vergleichen möchte. Wenn ich nun mein Programm durchlaufen lasse und beide Zahlen den Wert -0.91574 annehmen, zeigt mein Vergleicher immer noch FALSE an. Was habe ich verkehrt gemacht? Besten Dank!
|
|
|
08.09.2015, 11:14
Beitrag #2
|
panduci
LVF-Gelegenheitsschreiber
Beiträge: 86
Registriert seit: Jun 2011
8.5, 2012 ,2013, 2014, 2015
2006
DE
Oesterreich
|
RE: Vergleich zweier Zahlen
Hallo,
normalerweise sollte das schon klappen.
Lade dein VI einmal hoch. Vielleicht hast du auch zu wenig Kommastellen eingeblendet und die Zahlen sind tatsächlich unterschiedlich...
lg panduci
Es gibt zweierlei Arten von Neugier:
1) Die eine aus Eigennutz, die uns antreibt zu erfahren, was uns nützen kann.
2) Die andere aus Stolz, die dem Trieb entspringt, zu wissen, was andere nicht wissen.
|
|
|
08.09.2015, 11:19
Beitrag #3
|
LabViewPete
LVF-Gelegenheitsschreiber
Beiträge: 74
Registriert seit: Jul 2015
7.1
2015
DE
|
RE: Vergleich zweier Zahlen
Ich habe eine Zahl invertiert und dann beide Werte aufaddiert. Als Ergebnis habe ich den Wert 1.19209E-7 erhalten. Das heißt beide Zahlen sind tatsächlich unterschiedlich. Jetzt sollte ich die Zahlen runden? Wie kann ich beide Zahlen auf drei Stellen nach dem Komma runden?
|
|
|
08.09.2015, 11:25
Beitrag #4
|
panduci
LVF-Gelegenheitsschreiber
Beiträge: 86
Registriert seit: Jun 2011
8.5, 2012 ,2013, 2014, 2015
2006
DE
Oesterreich
|
RE: Vergleich zweier Zahlen
Multiplizieren mit 1000 und dann auf Integer wandeln....Anschließend wieder durch 1000 dividieren.
lg panduci
Es gibt zweierlei Arten von Neugier:
1) Die eine aus Eigennutz, die uns antreibt zu erfahren, was uns nützen kann.
2) Die andere aus Stolz, die dem Trieb entspringt, zu wissen, was andere nicht wissen.
|
|
|
08.09.2015, 11:38
Beitrag #5
|
GerdW
______________
Beiträge: 17.480
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: Vergleich zweier Zahlen
Hallo Pete,
zum Thema "Floating point numbers" kann ich dir den Link in meiner Signatur empfehlen…
|
|
|
08.09.2015, 14:56
Beitrag #6
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
RE: Vergleich zweier Zahlen
Ein zweite Möglichkeit ist die Konvertierung der beiden Zahlen in Strings mit 3 Nachkommastellen.
Hier zum Vergleich:
|
|
|
08.09.2015, 15:55
Beitrag #7
|
|
|
08.09.2015, 21:40
(Dieser Beitrag wurde zuletzt bearbeitet: 09.09.2015 14:59 von Lucki.)
Beitrag #8
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
RE: Vergleich zweier Zahlen
(08.09.2015 15:55 )THL schrieb: Für eine Anwendung, bei der es um den Vergleich zweier DBL-Zahlen ging, habe ich mir mit dem nachfolgenden VI geholfen.
Dein VI ist ja wirklich perfekt, und mich wundert seit Jahren, dass NI nicht mal auf die schöne Idee kommt, genau diese Funktion (- als mit der rechten Maustaste anzuklickenden Modus -) mit in die Gleich- und Ungleich-Funktionen einzubauen.
Also:
Normalmodus: exakt gleich, so wie bisher.
Weiterer Modus: Innerhalb der Maschinengenauigkeit gleich.
Wenn man bedenkt, wie viele Anfagen hierzu uns im Forum dann erspart blieben...
|
|
|
22.10.2020, 12:06
Beitrag #9
|
wernerIBN
Datenflussumgeher
Beiträge: 124
Registriert seit: Sep 2009
8.6 und 2011
2000
DE
52425
Deutschland
|
RE: Vergleich zweier Zahlen
Diese Funktion nutze ich seit Jahren, nunmehr habe ich aber einen Bug gefunden! Diese Funktion funktioniert NICHT !, wenn beide Zahlen 0 sind, weil null mal irgendwas gibt null, somit beisst die Katze sich in den Schwanz.
Warum im unteren Zweig statt die Subtraktion nicht einfach auf 2x Epsilon vergleichen ?
oben (x-y) Absolut muss kleiner als 2x Epsilon sein. Fertig.
Erfahrung ist die Summe der gemachten Fehler
KISS - Keep it simple and stupid
Walking on water and developing software from a specification are easy if both are frozen. – Edward V Berard
|
|
|
22.10.2020, 12:24
(Dieser Beitrag wurde zuletzt bearbeitet: 22.10.2020 12:34 von GerdW.)
|
GerdW
______________
Beiträge: 17.480
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: Vergleich zweier Zahlen
Hallo Werner,
Zitat:Warum im unteren Zweig statt die Subtraktion nicht einfach auf 2x Epsilon vergleichen ?
Weil Epsilon die Maschinengenauigkeit (aka Auflösung) des Wertes "1" darstellt.
Wenn man jetzt Werte in anderen Größenordnungen vergleichen will, muss man Epsilon entsprechend skalieren - was hier über die Multiplikation mit abs(Y) erledigt wird.
"Aus dem Bauch heraus" würde ich dann eher eine Sonderbehandlung für den Fall X=Y=0 einbauen…
Oder diesen quick&dirty-Trick anwenden:
|
|
|
| |