Mitarbeiterantwort
Sep 12, 2017 - 09:45
Die Float-Systemvariable wird bei der Abfrage mit toFixed(2) auf 2 Nachkommastellen gebracht und ist dann entsprechend ein String. Dies ist in erster Linie für die Anzeige in der AIO REMOTE NEO, damit die Textlänge konstant erscheint. Denn als Zahl würde z.B. "4" angezeigt werden, so wird aber "4.00" angezeigt.
Mittlerweile gibt es für das Textelement auch Optionen um es als Zahl zu formatieren inklusive Nachkommastellen. Sollten wir das aber nachträglich im Modul ändern, dass dieses eine Float-Zahl zurückgibt, müssten einige Benutzer wahrscheinlich ihre Fernbedienungen anpassen. Deshalb werden wir das Verhalten wohl beibehalten.
Im Skripteditor muss man dann entsprechend – wie auch von dir bemerkt – mit parseFloat() arbeiten.
Für das executeDeviceCommand ist es egal, ob mit Anführungszeichen/als String oder ohne. Im Modul wird der Wert entsprechend geparst. Sowohl "20.00" als auch 20.00 setzen den korrekten Wert.
Mittlerweile gibt es für das Textelement auch Optionen um es als Zahl zu formatieren inklusive Nachkommastellen. Sollten wir das aber nachträglich im Modul ändern, dass dieses eine Float-Zahl zurückgibt, müssten einige Benutzer wahrscheinlich ihre Fernbedienungen anpassen. Deshalb werden wir das Verhalten wohl beibehalten.
Im Skripteditor muss man dann entsprechend – wie auch von dir bemerkt – mit parseFloat() arbeiten.
Für das executeDeviceCommand ist es egal, ob mit Anführungszeichen/als String oder ohne. Im Modul wird der Wert entsprechend geparst. Sowohl "20.00" als auch 20.00 setzen den korrekten Wert.
Von
toFixed(2) ist eigentlich falsch, den man kann gar nicht mit mehr dezimalstellen rechnen und auch diese nicht anzeigen....umweg über string variablen ist keine lösung....wieso kann man mit float nicht mehr als 2 dezimalstellen benutzen???
Von
dieses script:
executeDeviceCommand(
"AIO GATEWAY V5+ (EA)",
"Float1",
{"value":"setValue","ext":"2.525","extMeta":"-21474836.48-21474836.47","scale":"0.01"},
function(err) {
err && console.error(err.message);
}
);
schreibt 2.53 in die variable
es gibt aber berechnungen wo man diese 3 oder x-te stelle braucht
also ist float variable nicht dazu geeignet...umweg über string variablen ist keine lösung, da unnötig string variablen verschwendet werden!
Neuen Kommentar hinzufügen