(Wie) kann man denn ein Tausender-Trennzeichen setzen?valueFormat "%'d"
geht leider nicht (bei mir).
Zitat von: grappa24 am 14 Oktober 2022, 11:29:46
(Wie) kann man denn ein Tausender-Trennzeichen setzen?valueFormat "%'d"
geht leider nicht (bei mir).
Laut commandref werden die Formatierungszeichen der Sprintf-Stilformat-Zeichen verwendet. M. W. gibt es kein Zeichen für eine Tausender Formatierung in Perl. %d mit Apostroph gibt es in C/C++.
Grüße Jörg
Würde dir eine Funktion in der myUtils (https://forum.fhem.de/index.php/topic,115576.msg1197505.html#msg1197505) helfen? Weiss nicht, ob dies mit readingsGroup funktioniert.
@yersinia: Prima, das hilft mir, muss ich halt nur vorschalten
würde mich auch interessieren,
würde gerne in meiner Readingsgroup die Watt Werte in KW umgerechnet anzeigen, leider nur dummy
hatte so was wie das hier probiert:
valueFormat {(my $NewValue = $VALUE / 1000)}
damit kann ich im Reading umrechnen, aber nun habe ich teilweise 4 Nachkommastellen, das dann formatieren habe ich noch nicht geschafft
Mit der sub von yersinia hab ich es z.B. wie folgt umgesetzt:
brightness 3455.77
userReadings Brightness { tausender((split(/\./, ReadingsVal("HM_6ABA70","brightness", 5000.0)))[0]) }
Brightness 3.455
sub tausender {
my $zahl = shift;
my $text = reverse $zahl;
$text =~ s/\./\,/g; #replace decimal point by decimal comma
$text =~ s/(\d\d\d)(?=\d)(?!\d*\,)/$1./g;
return scalar reverse $text;
}
P.S. Das split() entfernt die Nachkommastellen:
split(/\./, ... [0])