NEWS
Math.abs() in Script / Funktion
-
Hallo Forum,
Ich bin noch nicht lange mit node-red zu Gange. Eher grad beim Einarbeiten auf einem Raspi.
Dabei ist mir aufgefallen, dass Math.abs() offenbar nicht arbeitet. Hat jemand einen Tip, woran das liegen könnte?
Ich hab mal einen kleinen Testflow gemacht (siehe Bild).

Hier der Flow:
[{"id":"8b07e542.c99468","type":"inject","z":"23e6ba9b.8080b6","name":"number (13.56)","topic":"","payload":"13.56","payloadType":"num","repeat":"","crontab":"","once":false,"x":155,"y":81,"wires":[["72a89e91.6902"]]},{"id":"9d858752.0e5a38","type":"debug","z":"23e6ba9b.8080b6","name":"","active":true,"console":"false","complete":"payload","x":154,"y":248,"wires":[]},{"id":"72a89e91.6902","type":"function","z":"23e6ba9b.8080b6","name":"abs","func":"msg.payload = Math.abs(msg.payload);\nreturn msg;","outputs":1,"noerr":0,"x":148,"y":166,"wires":[["9d858752.0e5a38"]]}]Vlt. weis jemand Rat
Danke
Reiner
-
Ja, sorry, haps inzwischen auch gemerkt;-)
Eigentlich hab ich eine Methode für den Vorkommawert gesucht. Aber Number.toInteger() gibts wohl nicht mehr.
Gibt es da was äquivalentes?, oder ist
msg.payload = Math.trunc(Math.abs(msg.payload));die gängige Art?
-
> Erwartest du negative Zahlen? Dann brauchst du es, sonst nicht.
Nein in meinem Fall erwarte ich sie nicht. Konkret geht es um eine uptime Formatierung. Da reicht parseInt() oder Math.floor().Ich habe eher gedacht, es gibt eine integer() Funktion und ich find sie bloß nicht.
Habs jetzt so gelöst:
//hours var h = Math.floor(msg.payload.uptime/3600) ; //rest minutes var mm = msg.payload.uptime % 3600 //minutes var m = Math.floor(mm/60); //seconds var s = (mm % 60); //uptime as string msg.payload = "uptime: " + h + " h " + m + "min " + s + "sec"; return msg;Weis zwar nicht ob es optimalere Lösungen gibt, aber tut erst mal;-)
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden