LabVIEWForum.de
Vergleich zweier Zahlen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Vergleich zweier Zahlen (/Thread-Vergleich-zweier-Zahlen)

Seiten: 1 2


Vergleich zweier Zahlen - LabViewPete - 08.09.2015 11:07

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!


RE: Vergleich zweier Zahlen - panduci - 08.09.2015 11:14

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


RE: Vergleich zweier Zahlen - LabViewPete - 08.09.2015 11:19

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?


RE: Vergleich zweier Zahlen - panduci - 08.09.2015 11:25

Multiplizieren mit 1000 und dann auf Integer wandeln....Anschließend wieder durch 1000 dividieren.

lg panduci


RE: Vergleich zweier Zahlen - GerdW - 08.09.2015 11:38

Hallo Pete,

zum Thema "Floating point numbers" kann ich dir den Link in meiner Signatur empfehlen…


RE: Vergleich zweier Zahlen - Lucki - 08.09.2015 14:56

Ein zweite Möglichkeit ist die Konvertierung der beiden Zahlen in Strings mit 3 Nachkommastellen.
Hier zum Vergleich:
[attachment=53988]


RE: Vergleich zweier Zahlen - THL - 08.09.2015 15:55

Für eine Anwendung, bei der es um den Vergleich zweier DBL-Zahlen ging, habe ich mir mit dem nachfolgenden VI geholfen.


RE: Vergleich zweier Zahlen - Lucki - 08.09.2015 21:40

(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... Big Grin


RE: Vergleich zweier Zahlen - wernerIBN - 22.10.2020 12:06

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.


RE: Vergleich zweier Zahlen - GerdW - 22.10.2020 12:24

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:
[attachment=61349]