NEWS
[gelöst} Addition von 0.01 fehlerhaft
-
Moin,
ich habe einen eigenen DP als "Number" angelegt. Sobald eine Aktualisierung via MQTT kommt, soll dieser DP mit 0.01 addiert werden. Das klappt nicht. Das Script macht komische Sachen und plötzlich ist die Zahl "krumm"
Ich hatte vorher versehentlich im Script nur "+1" gewählt. Da hat die Addition die ganze Zeit wunderbar geklappt. Der händisch eingegebene Startwert war 9xx.75. Heute morgen war dieser dann 10xx.75.
Ich tippe mal dass der Datentyp "number" falsch ist, oder? Welcher wäre besser?
Hier mein DP:
{ "_id": "0_userdata.0.Gaszaehler.Zaehlerstand", "type": "state", "common": { "name": "Zaehlerstand", "role": "value", "type": "number", "unit": "m³", "read": true, "write": true, "desc": "Manuell erzeugt", "def": false, "custom": { "sql.0": { "enabled": true, "changesOnly": true, "debounce": "1000", "retention": "31536000", "changesRelogInterval": "3600", "changesMinDelta": 0.1, "storageType": "", "aliasId": "" } } }, "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1576885539099, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
Hier mein Blockly:
-
@oberfragger sagte:
Ich tippe mal dass der Datentyp "number" falsch ist, oder?
Der Datentyp "number" ist richtig ! Es ist normal, dass eine mathematische Gleitkomma-Operation viele Nachkommastellen erzeugen kann. In diesem Fall muss man das Ergebnis der Operation auf 2 Nachkommastellen runden.
-
@paul53 Vielen Dank. Das war es vermutlich. Läuft nun 2h fehlerfrei.