From e6fb2c8c72487279ec6037bc81a264fe8ae0089c Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 15 May 2024 08:30:10 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20base=20=E5=A2=9E=E5=8A=A0is=5Fclose?= =?UTF-8?q?=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/utils/tools.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/apps/utils/tools.py b/apps/utils/tools.py index 6f36bc67..9d846eaa 100755 --- a/apps/utils/tools.py +++ b/apps/utils/tools.py @@ -9,6 +9,16 @@ import requests from io import BytesIO from rest_framework.serializers import ValidationError +def is_close(num1, num2=0, tolerance=1e-9): + """ + Check if a numeric value (int, float, etc.) is close. + """ + if isinstance(num1, float) or isinstance(num2, float): # Float check + return abs(num1-num2) < tolerance + elif isinstance(num1, int) and isinstance(num2, int): # Integer check + return num1 == num2 + else: + raise ValueError("Unsupported numeric type") def tran64(s): missing_padding = len(s) % 4