Vergleich zweier double-Werte, Unerwartetes Verhalten
Verfasst: 25. Sep 2019 19:52
In einer Regel wird folgender Vergleich durchgeführt
In der LOG-Datei ist jede Minute folgender Eintrag zu finden (das Device sendet jede Minute eine Status-Info per MQTT)
Laut Doku handelt es sich bei != um einen equals-Vergleich und keinen Objektreferenzvergleich. Wieso wird der IF-Zweig durchlaufen, obwohl die beiden Werte identisch sind?
Code: Alles auswählen
var position = 100.0 - Double::parseDouble(i_rolladenaz_shutter.state.toString)
if (position != i_rolladenaz_shutter_invert_percentage.state)
{
logInfo("rolladenaz.rules", "Received postUpdate " + position + ", " + i_rolladenaz_shutter_invert_percentage.state)
i_rolladenaz_shutter_invert_percentage.postUpdate(position)
}
Code: Alles auswählen
[INFO ] [rthome.model.script.rolladenaz.rules] - Received postUpdate 0.0, 0.0