From a1a216aea67b609ab692a28d2a5cda06e48f5e91 Mon Sep 17 00:00:00 2001 From: Li Shuzhen Date: Fri, 7 Nov 2025 10:19:01 +0800 Subject: [PATCH] fix: float value precision (#1485) --- custom_components/xiaomi_home/miot/miot_spec.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/custom_components/xiaomi_home/miot/miot_spec.py b/custom_components/xiaomi_home/miot/miot_spec.py index 7f6a5b2..cd61887 100644 --- a/custom_components/xiaomi_home/miot/miot_spec.py +++ b/custom_components/xiaomi_home/miot/miot_spec.py @@ -66,7 +66,7 @@ class MIoTSpecValueRange: """MIoT SPEC value range class.""" min_: int max_: int - step: int + step: int | float def __init__(self, value_range: Union[dict, list]) -> None: if isinstance(value_range, dict): @@ -567,9 +567,8 @@ class MIoTSpecProperty(_MIoTSpecBase): return self._value_range = MIoTSpecValueRange(value_range=value) if isinstance(value, list): - self.precision = len(str( - value[2]).split('.')[1].rstrip('0')) if '.' in str( - value[2]) else 0 + step_: str = format(value[2], '.10f').rstrip('0').rstrip('.') + self.precision = len(step_.split('.')[1]) if '.' in step_ else 0 @property def value_list(self) -> Optional[MIoTSpecValueList]: