آموزش پایتون
88 subscribers
281 photos
21 videos
81 files
178 links
ارتباط با ما:
@learnpythonicyBot

لینک گروه چت:
https://t.me/learnpythonicychat

لینک چنل ایتا:
https://eitaa.com/learnpythonicy
Download Telegram
دقت در محاسبات عددی (Floating vs Decimal vs Fraction)

در اغلب زبان‌های برنامه‌نویسی، اعداد اعشاری از نوع Floating-point به‌صورت دودویی در حافظه ذخیره می‌شوند.
این یعنی در بسیاری از محاسبات، با مقادیر تقریبی سروکار داریم، نه عدد دقیق.

برای افزایش دقت:

می‌توان از Decimal استفاده کرد که خطای اعشاری را تا حد زیادی کاهش می‌دهد،

اما حتی Decimal هم در برخی سناریوهای خاص کاملاً بی‌نقص نیست.

📌 وقتی دقت ۱۰۰٪ اهمیت دارد (مثل محاسبات مالی، آماری یا ریاضی دقیق)،
بهترین انتخاب Fraction است.

که Fraction عدد را به‌صورت کسر منطقی (صورت/مخرج) ذخیره می‌کند، نه اعشار تقریبی؛
در نتیجه محاسبات:
. دقیق
. قابل پیش‌بینی
. بدون خطای اعشاری
انجام می‌شوند.

خلاصه‌ی انتخاب

float → سریع ولی تقریبی

Decimal → دقیق‌تر، مناسب محاسبات حساس

Fraction → دقیق‌ترین گزینه برای محاسبات ایده‌آل


🧪 مثال
from decimal import Decimal
from fractions import Fraction

# float
print(0.1 + 0.2)
# خروجی: 0.30000000000000004

# Decimal
print(Decimal("0.1") + Decimal("0.2"))
# خروجی: 0.3

# Fraction
print(Fraction(1, 10) + Fraction(2, 10))
# خروجی: 3/10

📌 نکته مهم:

float
به‌خاطر نمایش دودویی دچار خطا می‌شود.

Decimal
باید با رشته (string) ساخته شود.

Fraction
نتیجه را دقیق و بدون خطا نگه می‌دارد


#numbers | #precision | #FloatingPoint | #Decimal | #Fraction | @Learnpythonicy
2