]> Piment Noir Git Repositories - freqai-strategies.git/commitdiff
fix(qav3): handle trailing zeros properly at number formatting
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Fri, 8 Aug 2025 17:31:20 +0000 (19:31 +0200)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Fri, 8 Aug 2025 17:31:20 +0000 (19:31 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
quickadapter/user_data/strategies/Utils.py

index 5bef67f0b6448c8b30f268371eae614afcde2363..826d9bc09b58b92414b04b0c2c54598db8077c3d 100644 (file)
@@ -127,22 +127,27 @@ def format_number(value: int | float, significant_digits: int = 5) -> str:
     abs_value = abs(value)
 
     if abs_value >= 1.0:
-        return f"{value:.{significant_digits}f}"
+        precision = significant_digits
+    else:
+        value_str = f"{abs_value:.18f}"
+        first_digit_pos = -1
+        for i, char in enumerate(value_str):
+            if char > "0" and char <= "9":
+                first_digit_pos = i
+                break
 
-    value_str = f"{abs_value:.18f}"
-    first_digit_pos = -1
-    for i, char in enumerate(value_str):
-        if char > "0" and char <= "9":
-            first_digit_pos = i
-            break
+        if first_digit_pos == -1:
+            precision = significant_digits
+        else:
+            leading_zeros = first_digit_pos - 2
+            precision = leading_zeros + significant_digits
 
-    if first_digit_pos == -1:
-        return f"{value:.{significant_digits}f}"
+    formatted_value = f"{value:.{precision}f}"
 
-    leading_zeros = first_digit_pos - 2
-    required_precision = leading_zeros + significant_digits
+    if "." in formatted_value:
+        formatted_value = formatted_value.rstrip("0").rstrip(".")
 
-    return f"{value:.{required_precision}f}"
+    return formatted_value
 
 
 @lru_cache(maxsize=128)