FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Kaspi am 15 Januar 2018, 11:03:41

Titel: sprintf Formatierung
Beitrag von: Kaspi am 15 Januar 2018, 11:03:41
Ich komme mit den Formatierungsangaben bei sprintf nicht zurecht,

{sprintf("%.3f kWh - %.2f €",
ReadingsVal("Z_Zaehlerstand", "Verbrauch",0),
ReadingsVal("Z_Zaehlerstand","Kosten",0))}


schreibt zB:       92.545 kWh - 21.34 €
                        1234.564 kWh - 125.35 €
                        1.154 kWh - 1.12 €


Da ich mehrere Werte habe möchte ich die Werte rechtsbündig untereinander haben.

zB:     92.452 kWh -   21,34 €
            3.125 kWh -     1,12 €
         345.678 kWh - 123.45 €

wie sollten die Formatierungsangaben lauten?


Gruß

Kaspi
Titel: Antw:sprintf Formatierung
Beitrag von: MadMax-FHEM am 15 Januar 2018, 11:29:37
Bei Google sprintf und formatierung eingeben und lesen...

Z.B.: http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht81Ht/c_zahlenformatierung_de

Gruß, Joachim
Titel: Antw:sprintf Formatierung
Beitrag von: Kaspi am 15 Januar 2018, 11:40:45
Hmmm...

ist printf und nicht sprintf

{sprintf("%9.3f kWh - %9.2f €",
ReadingsVal("Z_Zaehlerstand", "Verbrauch",0),
ReadingsVal("Z_Zaehlerstand","Kosten",0))}


funktioniert nicht.

{sprintf("%09.3f kWh - %09.2f €",
ReadingsVal("Z_Zaehlerstand", "Verbrauch",0),
ReadingsVal("Z_Zaehlerstand","Kosten",0))}



mit führenden "nullen" schon.

Aber ohne führende "nullen" ?

Gruß

Kaspi
Titel: Antw:sprintf Formatierung
Beitrag von: KernSani am 17 Januar 2018, 00:42:10
sprintf formatiert die Zahl eigentlich korrekt (also mit führenden Leerzeichen), das Problem ist die Darstellung in HTML, wo mehrere Leerzeichen hintereinander nur als ein Zeichen dargestellt werden... du musst irgendwie sowas machen (nicht getestet, nur als Anregung)
$s =~ s/\s/ /g;