تبدیل نوع عددی: تبدیل ورودی به عدد صحیح یا اعشاری
چرا به تبدیل نوع عددی نیاز داریم؟
فرض کنید از کاربر میخواهید سن خود را وارد کند و سپس برنامهای بنویسید که سن او را 5 سال بعد محاسبه کند. کاربر عدد 12 را وارد میکند، اما برنامه این عدد را به صورت یک نوشته (مانند «12») دریافت میکند، نه یک عدد ریاضی. اگر بخواهید 5 را به آن اضافه کنید، برنامه به جای جمع کردن، دو نوشته را به هم میچسباند و نتیجه «125» میشود که اشتباه است.
برای حل این مشکل، باید ورودی را به عدد تبدیل کنیم. تابع int ورودی را به یک عدد صحیح تبدیل میکند (مانند 12) و تابع float آن را به عدد اعشاری تبدیل میکند (مانند 12.0). بعد از این تبدیل، میتوانیم به راحتی روی آنها عملیات ریاضی انجام دهیم.
| تابع | نوع خروجی | مثال ورودی و خروجی |
|---|---|---|
| int | عدد صحیح | int("25") → 25 |
| int | عدد صحیح | int(3.9) → 3 |
| float | عدد اعشاری | float("14.5") → 14.5 |
| float | عدد اعشاری | float("7") → 7.0 |
کاربردهای تبدیل نوع عددی در برنامههای روزمره
تبدیل نوع عددی در بسیاری از برنامههایی که روزانه استفاده میکنیم، نقش حیاتی دارد. برای مثال، در یک برنامهی فروشگاهی، وقتی کاربر تعداد کالا و قیمت هر کالا را وارد میکند، برنامه با استفاده از int و float این ورودیها را به عدد تبدیل میکند و سپس قیمت کل را محاسبه مینماید. بدون این تبدیل، برنامه نمیتواند محاسبات ریاضی را به درستی انجام دهد.
یکی دیگر از کاربردهای مهم، در برنامههای مدیریت حساب بانکی است. وقتی کاربر مبلغی را برای انتقال یا برداشت وارد میکند، برنامه با float آن را به عدد اعشاری تبدیل میکند تا بتواند مبالغ ریالی و کسریهای آن را به درستی محاسبه کند. در بازیهای رایانهای نیز وقتی امتیاز کاربر را محاسبه میکنیم، از تبدیل نوع عددی استفاده میشود تا اعداد ورودی به درستی پردازش شوند.
همچنین در برنامههای محاسبهی معدل، میانگین نمرات، مساحت و محیط اشکال هندسی، و هر جای دیگری که نیاز به محاسبهی ریاضی داشته باشیم، تبدیل نوع عددی ضروری است. به عبارت دیگر، هر وقت ورودی از طریق صفحهکلید یا فایل دریافت میشود، پیش از انجام هرگونه محاسبه، باید آن را به عدد تبدیل کنیم.
چالشها و پرسشهای رایج دربارهی تبدیل نوع عددی
اگر ورودی عدد نباشد، چه اتفاقی میافتد؟
اگر ورودی شامل حروف یا کاراکترهای غیرعددی باشد، تابع int یا float با خطا مواجه میشود و برنامه متوقف میگردد. بنابراین همیشه باید مطمئن شوید که ورودی قابل تبدیل به عدد است. برای این کار میتوانید از تابعهای بررسی مانند isdigit استفاده کنید تا قبل از تبدیل، اعتبار ورودی را چک کنید.
تفاوت int و float در عمل چیست؟
int اعداد را به صورت کامل (بدون اعشار) تبدیل میکند و بخش اعشاری را حذف میکند (مثلاً 7.9 را به 7 تبدیل میکند). اما float اعداد را با اعشار نگه میدارد و برای محاسبات دقیقتر مانند محاسبهی قیمت، وزن، یا اندازههای دقیق مناسبتر است. انتخاب بین این دو به نوع محاسبهای که میخواهید انجام دهید، بستگی دارد.
آیا بعد از تبدیل، نوع دادهی اصلی تغییر میکند؟
خیر، تابعهای int و float یک کپی جدید از داده را به صورت عدد برمیگردانند و دادهی اصلی را تغییر نمیدهند. بنابراین اگر میخواهید از عدد تبدیلشده استفاده کنید، باید آن را در یک متغیر جدید ذخیره کنید یا همان متغیر قبلی را بازنویسی کنید.