NEWS
Vergleich von zwei Datenpunkten funktioniert nicht
-
Hallo Zusammen,
bin Neuling im Thema ibroker und habe gleich mal ein Problem.
Habe zwei identische Objekte erstellt und wollte diese auf ihren Wert abfragen und vergleichen.
Eingestellt sind sie als Zeichenkette, habe aber auch schon zahl und string ausprobiert.
Das erste Objekt soll eine Temperatur simulieren, das zweite den Grenzwert z.B. zur Warnung das die Temp überschritten wurde.
Soweit passt es auch. Ist der erste Wert "Temperatur" (40) größer als der eingestellte "Genzwert" (27) wird der 'basic bar' Balken rot und im 'Basic html widget' steht "schlecht".
Anders herum passt es auch.
So, jetzt aber ein komischer Effekt.
Stelle ich den Grenzwert zwischen 5 und 10 gibt es die falsche Meldung.
Hier als Beispiel der Grenzwert 6. Eigentlich müsste jetzt der Balken rot sein und im Feld "schlecht" stehen.
Im 'Basic html widget' habe ich folgendes eingetragen, genauso wie im 'basic bar' als Farbe{v1:javascript.0.scriptEnabled.common.Test_Wert; v2:javascript.0.scriptEnabled.common.Test_Wert_Variabel;v1 < v2 ? "gut" : "schlecht"}
Vielen Dank für eure Hilfe
-
@iberlegu sagte:
So, jetzt aber ein komischer Effekt.
Das ist nicht komisch, sondern bei einem String-Vergleich normal: Funktioniert nur bei gleicher Stellenzahl (führende 0).
-
Hab ich ich mir auch gedacht aber!!!
-
@iberlegu
Ein Stringvergleich erfolgt zeichenweise von vorn nach hinten und bricht ab, wenn eine Bedingung falsch ist, in dem Beispiel schon nach dem ersten Zeichen, da "2" < "1" falsch ist.
Damit die Vergleiche funktionieren, müssen die Werte in Zahlen gewandelt werden.parseFloat(v1) < parseFloat(v2) ? "gut" : "schlecht";
-
@paul53 sagte in Vergleich von zwei Datenpunkten funktioniert nicht:
parseFloat(v1) < parseFloat(v2) ? "gut" : "schlecht"
Perfekt
Vielen Dank!!