آموزش اعداد ممیزی شناور در سی شارپ

رتبه: 0 ار 0 رای sssss
اعداد ممیزی درسی شارپ
نویسنده: تیم تولید محتوا زمان مطالعه 5 دقیقه
Banner Image

اعداد ممیزی شناور؛ اعدادی هستند که یک بخش اعشاری دارند (معمولاً با یک ممیز از بخش صحیح جدا می شود). شما ممکن است متعجب شوید که چرا یک نوع داده واحد برای کار با تمامی اعداد (صحیح و اعشاری) وجود ندارد؛ اما باید بدانید که برای کامپیوتر کار با اعداد صحیح نسبت به کار با اعداد اعشاری؛ بسیار سریع تر است. بنابراین متمایز کردن آنها از یکدیگر؛ می تواند بسیار معنادار باشد – اگر می دانید که در طول پروژه تان فقط با اعداد صحیح سر و کار دارید؛ باید با نوع داده های Integer کار بکنید.

در غیر این صورت؛ از نوع داده های ممیز شناور استفاده نمایید که روش کار با آنها در مقاله زیر آمده است:

استفاده از یک مقدار ممیز شناور به سادگی استفاده از یک مقدار عدد صحیح است؛ البته در مورد کار با اعداد ممیز شناور؛ تا حدودی نگرانی های بیشتری وجود دارد که در ادامه به آنها خواهیم پرداخت. اکنون؛ اجازه دهید بررسی کنیم که هنگام بیان یکی از متداول ترین داده های ممیز شناور یعنی double کد نویسی به چه صورت در می آید.

double number;

دقیقاً مشابه یک عدد صحیح؛ می توانید همزمان با بیان کردن آن؛ یک مقدار را نیز به آن اختصاص دهید:

double number = 42.0;

روند کد نویسی برای اعداد ممیز شناور و اعداد اعشاری یکسان می باشد؛ با این تفاوت که علامت آنها کمی متفاوت است:

double doubleVal = 42.0;
float floatVal = 42.0f;
decimal decimalVal = 42.0m;

توجه کنید که “f” و “m” بعد از اعداد؛ به ترتیب به کامپایلر اعلام می کند که می خواهیم یک عدد شناور (Float) یا یک عدد اعشاری را معرفی و مقدار دهی کنیم. بدون آن سی شارپ اعداد را به صورت double تفسیر می کند که نمی تواند به صورت خودکار به یک عدد شناور یا اعشاری تبدیل شود.

اعداد double، float یا decimal؟

چرب زبان

برنامه نویسی سی شارپ رو قورت بده! بدون کلاس، سرعت 2 برابر، ماندگاری 3 برابر، پولسازی با ساخت اپلیکیشن، توسعه وب ... دانلود:

پک کامل سی شارپ

پک مبانی برنامه نویسی (اختیاری)

کار با اعداد ممیزی شناور (float) در برنامه نویسی همیشه باعث ایجاد شدن سؤالات و نگرانی های زیادی می شود. برای مثال؛ سی شارپ حداقل سه نمونه داده برای کار برای اعداد غیر صحیح دارد:

  • float ( نام مستعار برای System.Single)
  • double (نام مستعار برای System.Double)
  • decimal (نام مستعار برای System.decimal)

ممکن است درک تفاوت برجسته بین این سه نوع داده کمی دشوار باشد؛ مگر این که شما درمورد نحوه ی عملکرد داخلی کامپیوتر دانش زیادی داشته باشید؛ بنابراین؛ بیایید به موارد کاربردی تر در اینجا بپردازیم.

به طور کلی ، تفاوت بین float ، double و decimal در دقت حاصل کار و میزان حافظه ای است که برای ذخیره آنها به کار می رود. float ابتدایی ترین آنها است- می تواند عددی را با حداکثر ۷ رقم نشان دهد. double دقیق تر است و دارای حداکثر ۱۶ رقم است، در حالی که decimal دقیق ترین است و حداکثر آن عدد ۲۹ رقم است.

شاید تعجب کنید که چرا باید به آن همه دقت نیاز پیدا کنید، اما پاسخ این سؤال به “مسائل ریاضی” باز می گردد. مثال کلاسیک برای درک تفاوت دقت این روش ها، تقسیم ۱۰ به ۳ است. اکثر ما این کار را در ذهن خود انجام می دهیم و می گوییم نتیجه ۳٫۳۳ است ، اما بسیاری از مردم نیز می دانند که پاسخ کاملاً دقیق نیست. پاسخ واقعی ۳٫۳۳ است به صورتی که تعداد زیادی ۳ نیز در بخش اعشاری وجود دارد – این که چه تعداد از این ۳ ها هنگام انجام این محاسبه با سی شارپ به دست می آید، توسط نوع داده مشخص می شود. این مثال را ببینید:

float a = 10f / 3;
Console.WriteLine(a);
double b = 10d / 3;
Console.WriteLine(b);
decimal c = 10m / 3;
Console.WriteLine(c);

من دقیقاً همین محاسبات را با انواع متفاوت داده ها انجام می دهم؛ نتیجه مشابه زیر خواهد بود:

a: 3.333333
b: 3.33333333333333
c: 3.3333333333333333333333333333

تفاوت تقریباً واضح است؛ اما سؤال این است که برای انجام نوعی از محاسبات؛ چقدر دقت نیاز دارید؟

چگونه انتخاب کنیم؟

قبل از هر چیز؛ باید بدانید آن اعدادی که به کار می برید؛ می خواهید چند رقم باشند. یک عدد از نوع float می تواند تنها ۷ رقم را بپذیرد؛ بنابراین؛ اگر نیاز به اعدادی بزرگ تر از این دارید؛ ممکن است بخواهید به سراغ double یا decimal بروید.

دوم این که هر دو نوع float و double مقداری را ارائه می دهند که تقریبی از مقدار حقیقی است – به عبارت دیگر؛ ممکن است مقایسه نتیجه با مقدار واقعی تا آخرین رقم صحیح نباشد. این بدان معناست که وقتی شروع به انجام محاسبات بیشتری با این متغیرها می کنید ، ممکن است دیگر خیلی دقیق نباشند ، که در اصل بدان معنی است که دو مقداری که باید برابر باشند ، به طور ناگهانی دیگر مساوی نمی شوند.

بنابراین ، برای موقعیت هایی که دقت نگرانی اصلی تان است، باید با نوع decimal پیش بروید. یک مثال عالی برای استفاده از اعداد decimal، نشان دادن ارقام مالی (پول) است – شما نمی خواهید یک عدد ده رقمی را در دفتر حسابداری خود اضافه کنید، بلکه برای دقت بیشتر از این نوع استفاده می کنید. از طرف دیگر ، اگر عملکرد کد نویسی برای تان از اهمیت بیشتری برخوردار باشد، باید با float (برای اعداد کوچک) یا double (برای اعداد بزرگتر) پیش بروید. نوع decimal به دلیل این که دقت بیشتری دارد، بسیار کندتر از یک float است – بعضی از آزمایشات نشان می دهد که تا ۲۰ برابر کندتر است!

خلاصه

زمانی که می خواهید با مقادیر ممیزی شناور کار کنید؛ هنگامی که دقت از اهمیت کمتری نسبت به عملکرد برخودار است؛ باید از نوع داده های float یا double استفاده کنید. از سوی دیگر؛ اگر ماکزیمم مقدار دقت را می خواهید و سطح پایین تری از عملکرد را می پذیرید؛ شما باید با نوع decimal کار کنید -به خصوص زمانی که با ارقام مالی کار می کنید-

profile name
تیم تولید محتوا

بخندید کتاب بخونید و خوب باشید تا جامعه مون به آرامش برسه. لطفا ! هر سوالی دارید در بخش نظرات مطرح کنید. ما یا سایر هموطنان عزیز پاسخ خواهیم داد. برای کمک به سایت ما و گسترش آموزش در بین هموطنان، در سایتها، وبلاگ ها و شبکه های اجتماعی لینک سایت ما را درج کنید.

مطالب پیشنهادی برای شما

محصولات مرتبط

مشاهده همه

دیدگاهتان را بنویسید

1 2 3 4 5

0 نظر درباره «آموزش اعداد ممیزی شناور در سی شارپ»

    هنوز نظری برای این بخش ثبت نشده است
مشاهده همه نظرات
سبد خرید
سبد خرید شما خالی است
× جهت نصب روی دکمه زیر در گوشی کلیک نمائید
آی او اس
سپس در مرحله بعد برروی دکمه "Add To Home Screen" کلیک نمائید