diff --git a/utils/format_number.py b/utils/format_number.py index 7759bab..bcc1e9b 100644 --- a/utils/format_number.py +++ b/utils/format_number.py @@ -2,13 +2,20 @@ from decimal import Decimal def format_number(number): number = Decimal(str(number)) + integer_part = number // 1 + fractional_part = number - integer_part - formatted_integer_part = '{:,.0f}'.format(number // 1).replace(',', ' ') - fractional_part = f"{number % 1:.30f}".split('.')[1] + formatted_integer = '{:,.0f}'.format(integer_part).replace(',', ' ') - if int(fractional_part) == 0: - return formatted_integer_part + '' - - significant_start = next((i for i, char in enumerate(fractional_part) if char != '0'), len(fractional_part)) - result_fractional = fractional_part[:significant_start + 3] - return formatted_integer_part + '.' + result_fractional + if fractional_part == 0: + return formatted_integer + + fractional_str = f"{fractional_part:.30f}".split('.')[1] + first_non_zero = next((i for i, char in enumerate(fractional_str) if char != '0'), len(fractional_str)) + result_fractional = fractional_str[:first_non_zero + 3] + result_fractional = result_fractional.rstrip('0') + + if not result_fractional: + return formatted_integer + + return f"{formatted_integer}.{result_fractional}"