FHEM Forum

FHEM => Frontends => SVG / Plots / logProxy => Thema gestartet von: Persuasiv am 27 April 2020, 08:57:55

Titel: Mehr Nachkommastellen bei $data{avg1}
Beitrag von: Persuasiv am 27 April 2020, 08:57:55
Hi,

ich lasse mir mit $data{avg1} den Durchschnitt anzeigen. Jetzt besteht bei einigen Plots das Problem, dass ich z. B. beim Spritpreisplot weitere Nachkommastellen benötige. D. h. ich benötige etwas dieser Art: %.2f $data{avg1}

Wie kann man das umsetzen? Ich habe schon versucht mit ".(sprintf"%.2f",$data{sum1}/$data{count_messwerte})." einen eigenen Durchschnitt zu berechnen. Es würde schon reichen, wenn ich die Anzahl der Messwerte ($data{count_messwerte}) irgendwie für eine Berechnung nutzen könnte.

Besten Dank
Titel: Antw:Mehr Nachkommastellen bei $data{avg1}
Beitrag von: rudolfkoenig am 27 April 2020, 09:18:48
FileLog berechnet avg so:
      $data{"avg$j"} = sprintf("%0.*f",abs($a)<=1 ? 3 : abs($a)<=10 ? 2 :1,$a);
d.h. fuer DE im Normalfall mit 2 Nachkommastellen.
count_messwerte heisst cntX
Titel: Antw:Mehr Nachkommastellen bei $data{avg1}
Beitrag von: Persuasiv am 27 April 2020, 10:23:21
Ich habe es jetzt so probiert:

"Dieselpreis Durchschnitt ".(sprintf"%.1f",$data{sum1}/$data{cntX})." €"

Dabei bekomme ich folgende Rückmeldung: "Illegal division by zero at (eval 176065) line 1"

"Dieselpreis Durchschnitt ".(sprintf("%0.*f",abs($a)<=1 ? 3 : abs($a)<=10 ? 2 :1,$a))." €"

Letzteres liefert: 0.000 € ...

Zitatd.h. fuer DE im Normalfall mit 2 Nachkommastellen.

Bei mir ist dort nur eine Nachkommastelle sichtbar. Ich habe einen Screenshot angehängt.


EDIT: Ich habe mich hinreichend dumm angestellt. Folgendes funktioniert:

".(sprintf"%.1f",$data{sum1}/$data{cnt1})."