Hauptmenü

sprintf Formatierung

Begonnen von Kaspi, 15 Januar 2018, 11:03:41

Vorheriges Thema - Nächstes Thema

Kaspi

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

MadMax-FHEM

Bei Google sprintf und formatierung eingeben und lesen...

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

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Kaspi

#2
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

KernSani

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;
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...