diff --git a/solar_ble.py b/solar_ble.py
index a0cf72b..3064867 100755
--- a/solar_ble.py
+++ b/solar_ble.py
@@ -5,6 +5,7 @@ import datetime
 import struct
 import sys
 import time
+from decimal import Decimal
 from io import RawIOBase
 from typing import Callable, Collection, Optional, cast
 
@@ -403,15 +404,18 @@ if __name__ == "__main__":
                         if per_voltages(now):
                             data = try_read_parse(dev, 0x0100, 11, parse_battery_state)
                             if data:
-                                data[DataName.CALCULATED_BATTERY_POWER] = data.get(
-                                    DataName.BATTERY_VOLTAGE, 0
-                                ) * data.get(DataName.BATTERY_CURRENT)
-                                data[DataName.CALCULATED_PANEL_POWER] = data.get(
-                                    DataName.PANEL_VOLTAGE, 0
-                                ) * data.get(DataName.PANEL_CURRENT)
-                                data[DataName.CALCULATED_LOAD_POWER] = data.get(
-                                    DataName.LOAD_VOLTAGE, 0
-                                ) * data.get(DataName.LOAD_CURRENT)
+                                data[DataName.CALCULATED_BATTERY_POWER] = float(
+                                    Decimal(data.get(DataName.BATTERY_VOLTAGE, 0))
+                                    * Decimal(data.get(DataName.BATTERY_CURRENT, 0))
+                                )
+                                data[DataName.CALCULATED_PANEL_POWER] = float(
+                                    Decimal(data.get(DataName.PANEL_VOLTAGE, 0))
+                                    * Decimal(data.get(DataName.PANEL_CURRENT, 0))
+                                )
+                                data[DataName.CALCULATED_LOAD_POWER] = float(
+                                    Decimal(data.get(DataName.LOAD_VOLTAGE, 0))
+                                    * Decimal(data.get(DataName.LOAD_CURRENT, 0))
+                                )
                                 log(data)
                                 for consumer in consumers:
                                     consumer.write(data)