
در برنامهنویسی، همیشه با اعداد اعشاری سر و کار داریم. در محاسبات مالی، رسم نمودارها و حتی پردازش دادههای عملی، نیاز داریم اعدادی دقیقتر از عدد صحیح داشته باشیم. اما سؤالی که پیش میآید این است که تفاوت float و double در برنامه نویسی چیست؟ اگر بهجای هم استفاده شوند چه مشکلی پیش میآید؟ در این آموزش به زبان ساده به این سؤالها پاسخ میدهم و در یک جدول، این دو نوع دادهای را مقایسه میکنم.
اگر از float و double بهجای هم استفاده کنیم، معمولاً کدهایمان اجرا میشوند؛ اما ممکن است دقت محاسبات تغییر کند. برای مثال، در محاسبات مالی یا دادههای تخصصی که نیازمند دقت بالاست، انتخاب اشتباه بین این دو نوع عدد اعشاری میتواند باعث ایجاد خطای ناخواسته یا کاهش دقت نتایج شود.
فهرست محتوای آموزش
عدد float یک نوع دادهای برای ذخیره اعداد اعشاری است که معمولاً 4 بایت فضا در حافظه اشغال میکند. در مقایسه با double، تعداد رقم اعشار کمتری دارد و بنابراین دقت آن محدودتر است اما حافظه کمتری مصرف میکند.
عدد double نیز یک نوع دادهای برای ذخیره اعداد اعشاری است که معمولاً 8 بایت فضا نیاز دارد. در مقایسه با float، دقت بیشتری در تعداد ارقام اعشاری دارد و از آن برای محاسبات اعشاری با دقت بالا یا تعداد اعشار زیاد استفاده میشود.
هر دو عدد float و double در برنامهنویسی برای نمایش اعداد اعشاری استفاده میشوند. بنابراین در برنامهای که لازم است یک عدد اعشاری ساده را نگهداری کنید، تفاوت چشمگیری بین این دو متغیر نیست. اما اگر دقت عدد اعشاری (تعداد اعشار) و حافظهی مصرفی در هنگام ذخیرهسازی برایتان مهم است، باید به تفاوتهای این دو توجه داشته باشید.
بهطور کلی، در سیستم عاملها و معماریهای 32 بیتی و 64 بیتی، تعریف float و double تغییر چندانی نمیکند. یعنی float همچنان 4 بایت و double همان 8 بایت است (معمولاً). تفاوت اصلی این دو نوع عدد، به معماری CPU و زبان برنامهنویسی وابسته است.
در اکثر زبانهای برنامهنویسی، تفاوت float و double به این شکل است که:
به همین دلیل، در جاهایی که دقت عدد اعشاری خیلی مهم نیست، float انتخاب میشود و در جاهایی که مشکل در رقمهای بالای اعشار، مثل اعشار هشتم (جایگاه هشتم در ارقام)، موجب خطا یا کاهش دقت میشود، از double استفاده میشود.
| ویژگی | عدد float | عدد double |
|---|---|---|
| حجم حافظه | معمولاً ۴ بایت | معمولاً ۸ بایت |
| تعداد ارقام اعشاری دقیق | حدود ۶ تا ۷ رقم | حدود ۱۵ تا ۱۶ رقم |
| دقت محاسبات | کمتر | بیشتر |
| سرعت پردازش | کمی سریعتر | کمی کندتر (به دلیل حجم بیشتر) |
| کاربرد فرضی | گرافیک، بازیها، دادههای ساده | محاسبات علمی، مالی، آمار دقیق |
هر زبان برنامهنویسی یا زبانهای کار با دیتابیس، ممکن است تعریف خاصی برای float یا double داشته باشند؛ اما اصول کلی و ساختارِ معمول، همین چیزی است که تا اینجا بحث کردیم.
در لیست زیر، تفاوت double و float در برخی زبانهای برنامهنویسی معروف آمده است:
C++: عدد float معمولاً 4 بایتی و دارای 6 رقم اعشار است و double بهصورت 8 بایتی تعریف شده و دقتی در حدود 15 رقم دارد.C#: مشابه جاوا و C، در سی شارپ نیز float یک عدد اعشاری 4 بایتی (32 بیتی) و double عدد 8 بایتی (64 بیتی) است.
در بعضی زبانها یا سیستمها، بین float و double تفاوتی وجود ندارد و یا معمولاً فقط یکی از آنها پشتیبانی میشود. برای مثال در زبانهای زیر، فقط یکی از این دو نوع را داریم و از آنها برای تمام اعداد اعشاری خود استفاده میکنیم:
بهعنوان جمعبندی، تفاوت float و double در برنامهنویسی به دو نکته اصلی وابسته است:
اگر در پروژهای که در حال توسعه آن هستید، سرعت و مصرف حافظه برایتان مهم است، شاید بهتر باشد از float استفاده کنید. از طرفی اگر دقت محاسبات دهمیت بیشتری دارد، احتمالاً double انتخاب بهتری است.
این آموزش برای همیشه رایگانه! میتونید با اشتراکگذاری لینک این صفحه از ما حمایت کنید یا با خرید یه فنجون نوشیدنی بهمون انرژی بدید!
میخوام یه نوشیدنی مهمونتون کنم
برچسب:
نویسنده: استخدام کار