NEWS
GetState.val Nachkommastellen festlegen
-
Hallo zusammen,
ich lasse mir aktuell diverse Werte via Befehl über Telegram ausgeben. Die Werte haben allerdings 4 bis 5 Nachkommastellen.
Gibt es die Möglichkeit die Nachkommastelle festzulegen?
Folgenden Code verwende ich:
var slaid = "hm-rega.0.7029"/*Strom Leistungsaufnahme aktuell*/; var sla = getState(slaid).val;sla lasse ich mir dann per Telegram Befehl schicken.
Welche Möglichkeiten habe ich um den Wert auf 2 Nachkommastellen zu begrenzen bzw. kann ich das auch anders lösen?
Mfg
-
Man kann den Wert in einen String mit vorgegebener Anzahl an Nachkommastellen (im Beispiel 2) umwandeln:
var slaid = "hm-rega.0.7029"/*Strom Leistungsaufnahme aktuell*/; var sla = getState(slaid).val.toFixed(2) + ' W';und auch noch eine Maßeinheit mitgeben.
-
Funktioniert das ganze auch bei setState? Würde gerne bei einer Funktion auch die Nachkommastelle mit angeben, da ich aktuell im Ergebnis 6 Nachkommastellen habe.
function ZPDAY() { setState('javascript.0.Strom.Prozent.Stromverbrauch_%_S1+S2-DAY', (getState(SVD).val / getState(ZSZD).val) *100); }mfg
-
@pix:function ZPDAY() { val wert = (getState(SVD).val / getState(ZSZD).val) *100; setState('javascript.0.Strom.Prozent.Stromverbrauch_%_S1+S2-DAY', wert.toFixed(2)); }Gruß
Pix `
Ich empfehle toFixed nicht zu benutzen. Da Ergebnis von toFixed ist "string".Besser
setState('javascript.0.Strom.Prozent.Stromverbrauch_%_S1+S2-DAY', Math.round(wert * 100) / 100); -
Ich empfehle toFixed nicht zu benutzen. Da Ergebnis von toFixed ist "string".
Besser
setState('javascript.0.Strom.Prozent.Stromverbrauch_%_S1+S2-DAY', Math.round(wert * 100) / 100); ```` `Wie genau muss ich meine Berechnung
(getState(SVD).val / getState(ZSZD).val) *100hier mit einbauen? Wie wird die Anzahl der Nachkommastelle hier definiert?
Ist (wert *100) / 100 nicht wieder = wert?
mfg
-
Ich empfehle toFixed nicht zu benutzen. Da Ergebnis von toFixed ist "string".
Besser
setState('javascript.0.Strom.Prozent.Stromverbrauch_%_S1+S2-DAY', Math.round(wert * 100) / 100); ```` `Wie genau muss ich meine Berechnung
(getState(SVD).val / getState(ZSZD).val) *100hier mit einbauen? Wie wird die Anzahl der Nachkommastelle hier definiert?
Ist (wert *100) / 100 nicht wieder = wert?
mfg `
var val = Math.round((getState(SVD).val / getState(ZSZD).val) *10000) / 100;Z = 6.7899; 6.7899 * 100 = 678.99; Math.round(678.99) = 679; 679 / 100 = 6.79 Math.round(Z * 100) / 100 = 6.79
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