Double در سی شارپ
نوع داده Double در سی شارپ برای ذخیره اعداد اعشاری با دقت بالا استفاده میشود و محدوده گستردهای از مقادیر را پشتیبانی میکند.
30 مهر 1405
لینک کوتاه
نوع داده Double در سی شارپ (#C)
نوع داده double یکی از انواع دادههای عددی در زبان برنامهنویسی سی شارپ است که برای ذخیره اعداد دارای بخش اعشاری استفاده میشود.این نوع داده در محاسبات ریاضی، تحلیل دادهها، محاسبه میانگین، اندازهگیریها و بسیاری از عملیات عددی کاربرد دارد.
زمانی که مقدار موردنظر شامل بخش اعشاری باشد یا به محدوده بزرگتری از اعداد نیاز داشته باشیم، double میتواند انتخاب مناسبی باشد.
آیا به دنبال یک فرصت عالی برای یادگیری برنامهنویسی هستید؟ 🚀
با دوره آموزشی سیشارپ ما، شما میتوانید مهارتهای خود را به سطح جدیدی ارتقا دهید! این دوره بهطور کامل طراحی شده تا به شما کمک کند تا از مبتدی تا پیشرفته در دنیای برنامهنویسی سیشارپ پیش بروید.
👨🏫 چرا دوره ما را انتخاب کنید؟
- محتوای جامع و عملی: با پروژههای واقعی و تمرینات عملی، یادگیری را به تجربهای جذاب تبدیل کنید.
- مدرس مجرب: از تجربه و دانش مدرس حرفهای بهرهمند شوید که شما را در هر مرحله از یادگیری راهنمایی میکنند.
- پشتیبانی ۲۴/۷: هر زمان که سوالی داشتید، ما در کنار شما خواهیم بود تا به شما کمک کنیم.
- دسترسی مادامالعمر: به محتوای دوره دسترسی دائمی داشته باشید و هر زمان که خواستید، میتوانید به آن مراجعه کنید.
💡 فرصت را از دست ندهید!
بایادگیری سیشارپ، میتوانید در دنیای فناوری اطلاعات به یک متخصص تبدیل شوید و در پروژههای جذاب و چالشبرانگیز شرکت کنید.
همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آیندهای روشنتر بردارید!
شرکت در دوره آموزش برنامه نویسی سی شارپ
نوع داده Double در سی شارپ چیست؟
در زبان #C، نوع داده double برای نگهداری اعداد ممیز شناور با دقت دوگانه (Double-Precision Floating-Point) استفاده میشود.این نوع داده طبق استاندارد IEEE 754 از قالب ۶۴ بیتی بهره میبرد و میتواند اعداد بسیار بزرگ، بسیار کوچک و مقادیر اعشاری را نمایش دهد.
برای مثال، اعداد 12.5، 3.14159 و -25.75 را میتوان در متغیرهای double ذخیره کرد.
نمونه کد:
double price = 125.75;
double temperature = 23.6;
double pi = 3.14159;
Console.WriteLine(price);
Console.WriteLine(temperature);
Console.WriteLine(pi);
در این مثال، سه متغیر از نوع double تعریف شدهاند.
هر متغیر یک مقدار عددی را نگهداری میکند و با استفاده از Console.WriteLine میتوان مقدار آن را در خروجی نمایش داد.
نحوه تعریف متغیر Double در سی شارپ
برای تعریف یک متغیر از نوع double، ابتدا نام نوع داده و سپس نام متغیر را مینویسیم.در صورت نیاز، میتوان هنگام تعریف، مقدار اولیه را نیز مشخص کرد.
ساختار کلی به شکل زیر است:
double variableName = 10.5;
در این دستور، double نوع داده، variableName نام متغیر و 10.5 مقدار اولیه آن است.مثال دیگری را بررسی کنیم:
double length = 12.75;
double width = 4.5;
double area = length * width;
Console.WriteLine(area);
در این برنامه، مساحت با ضرب طول در عرض محاسبه میشود.
نتیجه برابر با 57.375 خواهد بود. این مثال نشان میدهد که چگونه میتوان از double برای انجام محاسبات اعشاری استفاده کرد.
محدوده و دقت نوع داده Double
یکی از ویژگیهای مهم double، محدوده گسترده آن است.این نوع داده میتواند مقادیر تقریبی از \(5.0 \times 10^{-324}\) تا \(1.7 \times 10^{308}\) را برای اعداد مثبت و منفی نمایش دهد.
همچنین مقدار صفر و مقادیر ویژهای مانند بینهایت مثبت، بینهایت منفی و NaN را پشتیبانی میکند.
دقت double تقریباً ۱۵ تا ۱۷ رقم معنادار است.
این موضوع به این معناست که اگر عددی با تعداد زیادی رقم اعشار ذخیره شود، ممکن است تمام ارقام آن دقیقاً حفظ نشوند.
برای مشاهده بزرگترین و کوچکترین مقادیر مثبت نرمال قابل نمایش میتوان از ویژگیهای زیر استفاده کرد:
Console.WriteLine(double.MaxValue);
Console.WriteLine(double.MinValue);
Console.WriteLine(double.Epsilon);
ویژگی double.MaxValue بزرگترین مقدار متناهی قابل نمایش را برمیگرداند و double.MinValue کوچکترین مقدار متناهی را از نظر عددی نشان میدهد که منفی است.
double.Epsilon نیز کوچکترین مقدار مثبت قابل نمایش بزرگتر از صفر را برمیگرداند؛ این مقدار با دقت نسبی double یکسان نیست.
چرا محاسبات Double همیشه دقیق نیستند؟
یکی از نکات مهم در استفاده از double، احتمال ایجاد خطاهای کوچک در محاسبات اعشاری است.بسیاری از اعداد اعشاری در سیستم دودویی نمایش دقیقی ندارند؛ بنابراین کامپیوتر نزدیکترین مقدار قابل نمایش را ذخیره میکند.
برای مثال:
double result = 0.1 + 0.2;
Console.WriteLine(result);
ممکن است خروجی به شکل زیر نمایش داده شود:
0.30000000000000004
این اتفاق لزوماً نشانه وجود اشکال در برنامه نیست، بلکه از نحوه نمایش اعداد ممیز شناور ناشی میشود.
اگر در برنامهای مانند نرمافزارهای مالی به محاسبات دقیق اعشاری نیاز دارید، معمولاً decimal انتخاب مناسبتری است. همچنین برای مقایسه نتایج محاسبات double بهتر است در موارد لازم از یک محدوده خطای قابل قبول استفاده کنید، نه اینکه همیشه برابری دقیق دو مقدار را بررسی کنید.
انجام عملیات ریاضی با Double
نوع داده double از عملیات ریاضی معمول مانند جمع، تفریق، ضرب و تقسیم پشتیبانی میکند.double a = 15.5;
double b = 4.0;
Console.WriteLine(a + b);
Console.WriteLine(a - b);
Console.WriteLine(a * b);
Console.WriteLine(a / b);
خروجی این برنامه به ترتیب شامل نتایج جمع، تفریق، ضرب و تقسیم دو عدد است.
از آنجا که متغیرها از نوع double هستند، نتیجه تقسیم نیز میتواند شامل بخش اعشاری باشد.
در صورت نیاز به گردکردن عدد، میتوان از متد Math.Round استفاده کرد:
double number = 12.5678;
double rounded = Math.Round(number, 2);
Console.WriteLine(rounded);
در این مثال، مقدار عدد تا دو رقم اعشار گرد میشود.
توجه داشته باشید که روش گردکردن پیشفرض در برخی حالتهای میانی از قاعده نزدیکترین عدد زوج پیروی میکند؛ بنابراین برای کاربردهای خاص باید رفتار موردنیاز را بررسی کنید.
تفاوت Double با Float و Decimal در سی شارپ
در سی شارپ، سه نوع داده پرکاربرد برای ذخیره اعداد اعشاری وجود دارد: float، double و decimal.تفاوت آنها در اندازه، دقت، محدوده و کاربرد است.
| نوع داده | اندازه | دقت تقریبی |
| ۳۲ | float بیت | ۶ تا ۹ رقم معنادار |
| ۶۴ | double بیت | ۱۵ تا ۱۷ رقم معنادار |
| ۱۲۸ | decimal بیت | ۲۸ تا ۲۹ رقم معنادار |
نوع float حافظه کمتری مصرف میکند و در بعضی کاربردهای گرافیکی یا محاسباتی مناسب است.
نوع double در بسیاری از محاسبات علمی و عمومی انتخاب پیشفرض مناسبی برای اعداد اعشاری است.
نوع decimal نیز برای مقادیر مالی و محاسباتی که دقت اعشاری اهمیت زیادی دارد، کاربرد فراوانی دارد.
برای تعریف مقدار double معمولاً نیازی به پسوند خاص نیست:
double distance = 125.75;
اما برای تعریف مقدار float باید از پسوند f استفاده شود:float distance = 125.75f;
برای مقدار decimal نیز از پسوند m استفاده میکنیم:decimal price = 125.75m;

تبدیل انواع داده به Double در سی شارپ
در برخی برنامهها لازم است مقدار یک نوع داده دیگر را به double تبدیل کنیم. برای نمونه، میتوان یک عدد صحیح را بهسادگی در متغیر double قرار داد:
int number = 25;
double result = number;
Console.WriteLine(result);
در این حالت تبدیل بهصورت ضمنی انجام میشود؛ زیرا double میتواند اعداد صحیح این محدوده را بدون مشکل نمایش دهد.
برای تبدیل رشته متنی به double نیز میتوان از double.TryParse استفاده کرد.
این روش کمک میکند اگر ورودی قابل تبدیل نباشد، برنامه بهجای ایجاد استثنا، نتیجه ناموفق بودن تبدیل را بررسی کند.
string input = "12.5";
if (double.TryParse(input, out double value))
{
Console.WriteLine(value);
}
else
{
Console.WriteLine("ورودی معتبر نیست.");
}
توجه داشته باشید که جداکننده اعشار قابل قبول به تنظیمات فرهنگی (Culture) برنامه وابسته است.
در برنامههایی که ورودی با قالب مشخصی دریافت میشود، بهتر است فرهنگ مناسب را بهصورت صریح تعیین کنید.
جمعبندی
نوع داده double در سی شارپ برای ذخیره و پردازش اعداد ممیز شناور با دقت دوگانه استفاده میشود.این نوع داده ۶۴ بیتی است، محدوده عددی بسیار گستردهای دارد و برای محاسبات علمی، اندازهگیریها و بسیاری از عملیات اعشاری مناسب است.
بااینحال، به دلیل شیوه نمایش اعداد در قالب ممیز شناور، بعضی محاسبات ممکن است با اختلافهای بسیار کوچک همراه باشند.
بنابراین انتخاب بین float، double و decimal باید بر اساس نیاز برنامه انجام شود.
اگر محدوده گسترده و عملکرد مناسب برای محاسبات عمومی اهمیت دارد، double گزینهای کاربردی است؛ اما برای محاسبات مالی حساس، معمولاً استفاده از decimal انتخاب بهتری خواهد بود.



کاربران ما
شما هم نظرتون با ما دریاره “Double در سی شارپ” اشتراک بزارید
برای ارسال نظر لطفا ورود یا ثبت نام کنید