FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Erich Fromm am 30 April 2018, 11:27:59

Titel: sprintf und Nachkommastellen
Beitrag von: Erich Fromm am 30 April 2018, 11:27:59
Hallo.

Ich bin hier gerade etwas ratlos. Ich halbe folgendes Userreading ...

attr ugPowerSensor_IEC_01 userReadings
kWh {sprintf("%.3f",ReadingsVal("ugPowerSensor_IEC_01","energy","???")/1000+26307.19)},
energyDifference difference {sprintf("%.3f",ReadingsVal("ugPowerSensor_IEC_01","energy","???"))},
energyDifferential differential {sprintf("%.3f",ReadingsVal("ugPowerSensor_IEC_01","energy","???")*3.6)}


... und möchte erreichen, dass kWh, energyDifference und energyDifferential jeweils mit drei Nackkommastellen dargestellt werden.
Das Resultat ist aber: kWh korrekt mit drei Nachkommastellen - energyDifference und energyDifferential aber mit vielen/allen Nachkommastellen.
Beispiel:
energyDifference 37.3000000000029
energyDifferential 0.787968641175301
kWh 26364.478


Bin für jeden Hinweis dankbar.

Gruß
Erich
Titel: Antw:sprintf und Nachkommastellen
Beitrag von: Otto123 am 30 April 2018, 11:35:42
Hallo Erich,

weil das Ergebnis einer Berechnung mit zwei Zahlen mit jeweils 3 Nachkommastellen nicht zwangsläufig wieder eine Zahl mit drei Nachkommastellen sein muss.
difference und differential sind ja wieder Berechnungen.
Mein einziger Ansatz, Du musst das Ergebnis formatieren.

Gruß Otto
Titel: Antw:sprintf und Nachkommastellen
Beitrag von: Erich Fromm am 01 Mai 2018, 08:00:48
Danke, Otto.