NEWS
Variable soll immer zwei Nachkommastellenn haben
-
Hallo,
heute über einen "blöden" Bug in meinem Script gestolpertIch berechne die Kosten für meinen Netzbezug, aktueller Wert ist:
6.24 kWh X 0.32€ = 1.9968Blockly gibt mir jetzt nur eine "2" raus (Wunsch: 2.00),
bei anderen Werten kommt korrekt eine auf zwei Stellen gerundete Zahl raus
Bsp: 2.22 kWh * 0.32€ = 0.71Wie kann ich immer sicherstellen, dass wenn es auch mal eine ganze Zahl ist (Bsp: 5.000000000 €) eine 5.00 ausgegeben wird?
-
@topsurfer sagte in Variable soll immer zwei Nachkommastellenn haben:
Hallo,
heute über einen "blöden" Bug in meinem Script gestolpertIch berechne die Kosten für meinen Netzbezug, aktueller Wert ist:
6.24 kWh X 0.32€ = 1.9968Blockly gibt mir jetzt nur eine "2" raus (Wunsch: 2.00),
bei anderen Werten kommt korrekt eine auf zwei Stellen gerundete Zahl raus
Bsp: 2.22 kWh * 0.32€ = 0.71Wie kann ich immer sicherstellen, dass wenn es auch mal eine ganze Zahl ist (Bsp: 5.000000000 €) eine 5.00 ausgegeben wird?
Dein Skript hat keinen Fehler
Deine Visualisierung wo der Wert angezeigt wird schon. In dieser musst du konfigurieren das du die Zahl mit 2 Nachkommastellen sehen willst. Wie du das da machst kann ich Dir nicht sagen - das hängt davon ab wo du die Zahl dargestellt bekommst.Und wenn du dich darüber beschwerst das im Datenpunkt nur 2 steht, und nicht 2.00 dann kann ich Dir nicht helfen - datenpuntke sind Intern, so formatiert das man sie gut benutzen kann, und nicht als Datensumpf für menschliche Leser gedacht.
-
OK,
dann müßte ich die Zahl besser in einen String umwandeln, der würde ja dann auch in vis bzw. im Objekt korrekt (2.00) angezeigt.Wie kann ich prüfen, ob es eine grade Zahl ist ("2"), dann würde ich mit String-Operation "einfach" ein ".00" anhängen (wäre meine erste Idee ...)
-
@topsurfer sagte: Wie kann ich immer sicherstellen, dass wenn es auch mal eine ganze Zahl ist (Bsp: 5.000000000 €) eine 5.00 ausgegeben wird?
Durch eine Wandlung in einen String per Zahl.toFixed(2).
In Blockly mittels JS:Funktion:return zahl.toFixed(stellen);
-
@topsurfer sagte in Variable soll immer zwei Nachkommastellenn haben:
OK,
dann müßte ich die Zahl besser in einen String umwandeln, der würde ja dann auch in vis bzw. im Objekt korrekt (2.00) angezeigt.Wie kann ich prüfen, ob es eine grade Zahl ist ("2"), dann würde ich mit String-Operation "einfach" ein ".00" anhängen (wäre meine erste Idee ...)
Warum willst du das im Skript machen, und nicht da wo du die Zahl darstellen willst ? Ich versteh das nicht. Da machst du aus Zahlen mit denen man (genau) rechnen kann ungenaue Strings, nur damit du in deiner Visualisierung die Anzeige nicht formatieren musst ? Das ist doch unsinnig
-
@topsurfer sagte in Variable soll immer zwei Nachkommastellenn haben:
dann müßte ich die Zahl besser in einen String umwandeln, der würde ja dann auch in vis bzw. im Objekt korrekt (2.00) angezeigt
In der Vis kannst Du die Anzahl der Nachkommastellen einstellen.
Im Objekt würde ich da nix ändern. Weder am Typen noch an der Formatierung. Wenn Du an anderer Stelle mit dem Wert weiterrechnest, erhältst Du Rundungsfehler.
-
@asgothian said in Variable soll immer zwei Nachkommastellenn haben:
Warum willst du das im Skript machen, und nicht da wo du die Zahl darstellen willst ? Ich versteh das nicht.
Ich gebe diesen Wert auf einem AWTRIX-Display aus, da kann ich (im Gegensatz zu VIS) keine Nachkommastellen angeben.
So passt es nun, danke euch!