توابع تبدیل عددی: از عدد صحیح تا اعشاری
دو دستهبندی اصلی دادههای عددی
در دنیای برنامهنویسی، اعداد به دو شکل اصلی دیده میشوند: اعداد صحیح و اعداد اعشاری. تابع int (مخفف integer) هر مقداری را که به آن داده شود، به یک عدد صحیح بدون جزء اعشار تبدیل میکند. برای نمونه، اگر کاربر سن خود را به صورت '۱۴' وارد کند، تابع int آن را به عدد ۱۴ تبدیل میکند. اما اگر عدد اعشاری مانند ۳/۱۴ به این تابع داده شود، قسمت اعشار را حذف کرده و عدد ۳ را برمیگرداند (نه گرد کردن، بلکه بریدن اعشار).
در مقابل، تابع float (مخفف floating-point) داده را به عدد اعشاری تبدیل میکند. این تابع برای زمانی کاربرد دارد که نیاز به دقت بیشتر و وجود اعشار داریم. فرض کنید قیمت یک خودکار ۱۲۵۰ تومان است، اما با تخفیف، مبلغ به ۱۰۸۷/۵ تومان تغییر میکند. در اینجا float به کمک ما میآید تا عدد را با اعشار دقیق نشان دهیم.
کاربرد در زندگی روزمره
فرض کنید در حال خرید از فروشگاه اینترنتی هستید و تعداد کالاهای خود را به صورت نوشتاری مانند '۳' وارد میکنید. برای محاسبهٔ قیمت نهایی، این رشته باید به عدد تبدیل شود تا بتوان آن را در قیمت هر کالا ضرب کرد. اینجا تابع int کار تبدیل را انجام میدهد.
مثال دیگر، محاسبهٔ معدل است. نمرات شما ممکن است به صورت اعشاری مانند ۱۷/۲۵ باشند. برای محاسبهٔ میانگین، نیاز به float داریم تا اعشار به درستی محاسبه شوند. همچنین در بازیهای رایانهای، موقعیت شخصیتها روی صفحه با اعداد اعشاری مشخص میشود تا حرکت نرم و پیوسته باشد.
| ورودی داده | خروجی تابع int | خروجی تابع float |
|---|---|---|
| '۱۲' | ۱۲ | ۱۲/۰ |
| '۴/۸' | ۴ | ۴/۸ |
| '۱۰۰' | ۱۰۰ | ۱۰۰/۰ |
| '۷/۹۹' | ۷ | ۷/۹۹ |
پرسشهای چالشی و پاسخهای ساده
پرسش ۱: اگر عدد '۵/۹' را به int بدهیم، چرا عدد ۶ نمیشود؟
پاسخ: تابع int اعشار را گرد نمیکند، بلکه آن را به کلی حذف میکند. بنابراین ۵/۹ به ۵ تبدیل میشود، نه ۶. برای گرد کردن باید از تابع دیگری استفاده کرد.
پرسش ۲: چرا گاهی خروجی float به صورت ۳/۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۴ نشان داده میشود؟
پاسخ: این موضوع به نحوهٔ ذخیرهسازی اعداد اعشاری در حافظهٔ رایانه برمیگردد. رایانهها اعداد اعشاری را به صورت تقریبی ذخیره میکنند و گاهی این تقریب باعث ایجاد رقمهای اضافی در انتها میشود. این مسئله در محاسبات دقیق مالی باید در نظر گرفته شود.
پرسش ۳: آیا میتوانیم از int برای تبدیل رشتهٔ '۱۲۳' استفاده کنیم؟
پاسخ: بله، اگر رشته فقط شامل رقمهای عددی باشد، int به راحتی آن را به عدد صحیح تبدیل میکند. اما اگر رشته دارای حرف یا علامت غیرعددی باشد، برنامه با خطا مواجه میشود. بنابراین باید مطمئن شوید که داده قابل تبدیل است.
خلاصه توابع int و float ابزارهای ساده اما قدرتمندی برای تبدیل دادهها به اعداد صحیح و اعشاری هستند. درک تفاوت این دو تابع به شما کمک میکند تا دادههای ورودی را به درستی پردازش کنید و از خطاهای محاسباتی جلوگیری نمایید. به یاد داشته باشید که int اعشار را حذف میکند و float آن را حفظ میکند. همچنین هنگام کار با اعداد اعشاری، به تقریبهای رایانهای توجه داشته باشید. با تمرین و استفادهٔ روزمره، به راحتی میتوانید تشخیص دهید که هر موقعیت به کدام یک از این توابع نیاز دارد.