From c9eb773f1040d45a40925f831240cd8fb5829bf0 Mon Sep 17 00:00:00 2001 From: Redume Date: Thu, 9 Jan 2025 23:03:38 +0300 Subject: [PATCH] fix: Error with Decimal if the number was too large --- functions/convert.py | 15 ++++++--------- utils/format_number.py | 6 +++--- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/functions/convert.py b/functions/convert.py index 1e898c4..c6ed7ea 100644 --- a/functions/convert.py +++ b/functions/convert.py @@ -1,14 +1,12 @@ -from utils.format_number import format_number - -import yaml - -import aiohttp import json import re - from datetime import datetime +from decimal import Decimal from http import HTTPStatus -from decimal import Decimal, ROUND_DOWN + +import aiohttp +import yaml + from utils.format_number import format_number config = yaml.safe_load(open('config.yaml')) @@ -24,8 +22,7 @@ class Converter: if not await self.kekkai(): await self.ddg() - number = Decimal(str(self.conv_amount)) - self.conv_amount = format_number(number.quantize(Decimal('1.0000'), rounding=ROUND_DOWN)) + self.conv_amount = format_number(Decimal(self.conv_amount)) async def kekkai(self) -> bool: diff --git a/utils/format_number.py b/utils/format_number.py index fe0de81..6012c7f 100644 --- a/utils/format_number.py +++ b/utils/format_number.py @@ -2,11 +2,11 @@ from decimal import Decimal def format_number(number): number = Decimal(str(number)) - + formatted_integer_part = '{:,.0f}'.format(number).replace(',', ' ') - + if '.' in str(number): - fractional_part = str(number).split('.')[1] + fractional_part = str(number).split('.')[1][:3] return formatted_integer_part + '.' + fractional_part else: return formatted_integer_part