LabVIEWForum.de - wie kann ich Werte runden?

LabVIEWForum.de

Normale Version: wie kann ich Werte runden?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hi,
ich habe ein VI in dem ich zwei Werte (double 64-bit reell) auf 2 Komastellen miteinander vergleichen will. Der eine Wert wird berechnet, der andere von eine ADwin-Karte übergeben. Mein Problem ist dass ich keinen Vergleich durchführen kann da meine beiden Werte meist im hinteren Komabereich unterschiedlich sind und sie somit fast nie gleich werden.

Ich hab nun schon versucht mit der Funktion "auf nächst grössere Zahl runden" die Werte gleich zu bekommen, das Problem ist aber dass die Werte vorwärts- und rückwärts laufen, somit würde es mit dem grösseren Wert nur beim vorwärts laufen gehen, beim rückwärtslaufen nur mit dem nächstkleineren.

Nun brauch ich also eine Funktion die nicht auf den nächsten grössere oder kleineren Wert rundet, sondern genau eben bei xx,5 rundet.

Wo bekomme ich sowas her, als funktion habe ich es nicht in LV gefunden.

Hab Euch mal das Bild angehängt wie ich es zuerst versucht habe - hat aber nicht geklappt (das mit den multiplikation und division mit 100 ist n ur weil ich zwei Komastellen benötige!)

Gruß Christoph
Hallo Chriz,

ich hätte dein VI auch so aufgebaut, jedoch hätte ich ein anderes Runden genommen. Diese Funktion rundet ab x,5 auf und vorher ab.


Gruß
sven
Genau, sieht gut aus.

Ich wollte auch Multiplikation mit 100 vorschlagen und dann in Integer umwandeln und vergleichen vorschlagen.

Gruss, Eugen
Mit Deinem Programm hast Du, was die Lösung Deines Problems betrifft, eine falsche Spur gelegt. Mit Runden geht das nicht. Beispiel Programm Svenni: Wenn die beiden Zahlen 10,00501 und 10,00499 sind, sind sie nach Deinem Kriterium gleich, das Programm liefert aber als Ergebnis "ungleich".
Das Problem ist doch ganz einfach: Wenn die Betrag der Differenz der beiden Zahlen nicht mehr al 0,01 ist, gelten sie als gleich, andernfalls nicht. Mit Runden hat das doch gar nichts zu tun.
Ein anderes sinnvolle Vorgabe könnte sein, das nicht die absolute, sondern die relative Abweichung zählt, daß also die Zahlen z.B. innerhalb einer Toleranz von einem Promille gleich sein sollen. Aber das wolltest Du ja nicht. Das läßt sich aber genau so einfach machen.
Korrektur: Im Bild muß natürlich 0.01 als Vergleichswert genommen werden.
Zitat:Wenn die beiden Zahlen 10,00501 und 10,00499 sind, sind sie nach Deinem Kriterium gleich, das Programm liefert aber als Ergebnis "ungleich".

Genau das war ja mein Problem! - aber jetzt wo ich Deine Lösung sehe denke ich dass ich da auch von alleine drauf kommen müssen hätte *schäm* :roll:

Jetzt isses klar warum das nicht funktioniert hat!

Danke
Referenz-URLs