در برنامهنویسی، همیشه با اعداد اعشاری سر و کار داریم. در محاسبات مالی، رسم نمودارها و حتی پردازش دادههای عملی، نیاز داریم اعدادی دقیقتر از عدد صحیح داشته باشیم. اما سؤالی که پیش میآید این است که تفاوت float و double در برنامه نویسی چیست؟ اگر بهجای هم استفاده شوند چه مشکلی پیش میآید؟ در این آموزش به زبان ساده به این سؤالها پاسخ میدهم و در یک جدول، این دو نوع دادهای را مقایسه میکنم.
اگر از float و double بهجای هم استفاده کنیم، معمولاً کدهایمان اجرا میشوند؛ اما ممکن است دقت محاسبات تغییر کند. برای مثال، در محاسبات مالی یا دادههای تخصصی که نیازمند دقت بالاست، انتخاب اشتباه بین این دو نوع عدد اعشاری میتواند باعث ایجاد خطای ناخواسته یا کاهش دقت نتایج شود.
فهرست محتوای آموزش
تعریف اعداد float و double
عدد float یک نوع دادهای برای ذخیره اعداد اعشاری است که معمولاً 4 بایت فضا در حافظه اشغال میکند. در مقایسه با double، تعداد رقم اعشار کمتری دارد و بنابراین دقت آن محدودتر است اما حافظه کمتری مصرف میکند.
عدد double نیز یک نوع دادهای برای ذخیره اعداد اعشاری است که معمولاً 8 بایت فضا نیاز دارد. در مقایسه با float، دقت بیشتری در تعداد ارقام اعشاری دارد و از آن برای محاسبات اعشاری با دقت بالا یا تعداد اعشار زیاد استفاده میشود.
هر دو عدد float و double در برنامهنویسی برای نمایش اعداد اعشاری استفاده میشوند. بنابراین در برنامهای که لازم است یک عدد اعشاری ساده را نگهداری کنید، تفاوت چشمگیری بین این دو متغیر نیست. اما اگر دقت عدد اعشاری (تعداد اعشار) و حافظهی مصرفی در هنگام ذخیرهسازی برایتان مهم است، باید به تفاوتهای این دو توجه داشته باشید.
تفاوت float با double
بهطور کلی، در سیستم عاملها و معماریهای 32 بیتی و 64 بیتی، تعریف float و double تغییر چندانی نمیکند. یعنی float همچنان 4 بایت و double همان 8 بایت است (معمولاً). تفاوت اصلی این دو نوع عدد، به معماری CPU و زبان برنامهنویسی وابسته است.
در اکثر زبانهای برنامهنویسی، تفاوت float و double به این شکل است که:
float فضای کمتری میگیرد و دقت کمتری دارد. (تعداد اعشار کمتر)
double فشای بیشتری میگیرد و دقت بیشتری دارد. (اعشار بیشتر)
به همین دلیل، در جاهایی که دقت عدد اعشاری خیلی مهم نیست، float انتخاب میشود و در جاهایی که مشکل در رقمهای بالای اعشار، مثل اعشار هشتم (جایگاه هشتم در ارقام)، موجب خطا یا کاهش دقت میشود، از double استفاده میشود.
ویژگی
عدد float
عدد double
حجم حافظه
معمولاً ۴ بایت
معمولاً ۸ بایت
تعداد ارقام اعشاری دقیق
حدود ۶ تا ۷ رقم
حدود ۱۵ تا ۱۶ رقم
دقت محاسبات
کمتر
بیشتر
سرعت پردازش
کمی سریعتر
کمی کندتر (به دلیل حجم بیشتر)
کاربرد فرضی
گرافیک، بازیها، دادههای ساده
محاسبات علمی، مالی، آمار دقیق
مقایسه ویژگیهای عدد اعشاری float و double
رفتار زبانهای برنامهنویسی با انواع اعداد اعشاری
هر زبان برنامهنویسی یا زبانهای کار با دیتابیس، ممکن است تعریف خاصی برای float یا double داشته باشند؛ اما اصول کلی و ساختارِ معمول، همین چیزی است که تا اینجا بحث کردیم.
در لیست زیر، تفاوت double و float در برخی زبانهای برنامهنویسی معروف آمده است:
C و C++: عدد float معمولاً 4 بایتی و دارای 6 رقم اعشار است و double بهصورت 8 بایتی تعریف شده و دقتی در حدود 15 رقم دارد.
Java: عدد float یک داده 4 بایتی و double بهصورت 8 بایتی است. در زبان جاوا، بهطور پیشفرض، از double برای اعداد اعشاری استفاده میشود.
C#: مشابه جاوا و C، در سی شارپ نیز float یک عدد اعشاری 4 بایتی (32 بیتی) و double عدد 8 بایتی (64 بیتی) است.
MySQL: در این زبان از float برای اعداد با دقت کمتر و از double (یا real) برای اعداد اعشاری با دقت بیشتر استفاده میشود.
PostgreSQL: نوع real معادل float و نوع double precision همان double است.
مقایسه تصویری ویژگیهای عدد اعشاری float با double در برنامه نویسی
زبانهایی که float و double ندارند
در بعضی زبانها یا سیستمها، بین float و double تفاوتی وجود ندارد و یا معمولاً فقط یکی از آنها پشتیبانی میشود. برای مثال در زبانهای زیر، فقط یکی از این دو نوع را داریم و از آنها برای تمام اعداد اعشاری خود استفاده میکنیم:
Python: زبان پایتون از نظر تئوری فقط نوع دادهای float را دارد ولی در عمل معادل double عمل میکند. یعنی اعداد اعشاری در پایتون به اسم float ولی 8 بایتی (64 بیتی) هستند.
JavaScript: همه اعداد اعشاری را بهصورت double ذخیره میکند.
PHP: نوع دادهای float را دارد اما در عمل بهصورت double عمل میکند و تفاوتی وجود ندارد. (بیشتر بخوانید: اعداد در PHP)
بهعنوان جمعبندی، تفاوت float و double در برنامهنویسی به دو نکته اصلی وابسته است:
دقت عدد (float معمولاً 6 رقم اعشار و double تعداد 15 یا 16 رقم)
حجم حافظه مصرفی (float سبکتر و double حجیمتر)
اگر در پروژهای که در حال توسعه آن هستید، سرعت و مصرف حافظه برایتان مهم است، شاید بهتر باشد از float استفاده کنید. از طرفی اگر دقت محاسبات دهمیت بیشتری دارد، احتمالاً double انتخاب بهتری است.
این آموزش برای همیشه رایگانه! میتونید با اشتراکگذاری لینک این صفحه از ما حمایت کنید یا با خرید یه فنجون نوشیدنی بهمون انرژی بدید!
میخوام یه نوشیدنی مهمونتون کنم
سون لرن • آموزش...
ما را در سایت سون لرن • آموزش دنبال میکنید
برچسب: نویسنده: استخدام کار بازدید: 31 تاريخ: دوشنبه 26 آبان 1404 ساعت: 17:40