کد پایتون (منطق سمت سرور)
from fractions import Fraction
def to_western_numerals(s_num):
"""Converts Persian/Arabic numerals to Western Arabic numerals."""
persian_map = {'۰':'0', '۱':'1', '۲':'2', '۳':'3', '۴':'4', '۵':'5', '۶':'6', '۷':'7', '۸':'8', '۹':'9'}
return "".join([persian_map.get(char, char) for char in str(s_num)])
def python_convert_rational_to_decimal(rational_str):
try:
rational_str = to_western_numerals(rational_str.strip())
if '/' in rational_str:
num, den = map(float, rational_str.split('/'))
if den == 0:
return {"error": "مخرج صفر است."}
return {"value": round(num / den, 8)}
else:
return {"value": float(rational_str)}
except Exception:
return {"error": "ورودی گویا نامعتبر."}
def python_convert_decimal_to_rational(decimal_str):
try:
decimal_str = to_western_numerals(decimal_str.strip())
fraction = Fraction(decimal_str).limit_denominator(10**8)
return {"value": f"{fraction.numerator}/{fraction.denominator}"}
except Exception:
return {"error": "ورودی اعشاری نامعتبر."}