Wieso ist 100% kleiner als 70% ?
Die Prozentzeichen waren für mich nur der Hinweis, dass hier
definitiv ein String vorliegt und kein Number (in jedem anderen Fall nur
wahrscheinlich), da werden ganz andere Vergleichsmethoden herangezogen. Wenn Du
{{ 100% <= 70% }}
eingibst wirft es einen Fehler, denn mit % ist es keine gültige Zahl mehr, da müssen Anführungsstriche her, dann kann man es vergleichen, also, Strings. Ist aber generell nicht unüblich, dass Sensorenwerte erstmal als String behandelt werden.
Bei Number wird, sinnvollerweise, der komplette Wert verglichen. Bei Strings wird zeichenweise verglichen. Vergleichst Du Apfel mit Birne ist klar, A < B, weiter müssen wir garnicht gehen. Bei Birne und Banane ist B = B, aber a < i - Vergleich beendet.
Bei 100 und 70 ist 1 < 7 - das Spiel kannst Du sogar bis zur 699 spielen, auch 6 < 7. Erst bei 700 wechselt das wieder, denn 7 = 7, 0 = 0, 0 >
null.
Das ist jetzt eigentlich etwas kurz gegriffen - manches wird in verschiedenen Sprachen verschieden behandelt, unter Umständen gibt es Flags um zu definieren als was Werte interpretiert werden sollen - aber für diesen Fall ist das die Erklärung weshalb "100" kleiner ist als "70" und erst das konvertieren zu Number dann das gewünschte Ergebnis bringt. Das gleiche hätte schon bei "10" <= "9" auffallen
können, denn natürlich ist 1 < 9.