تبدیل String به Double در سیشارپ
تبدیل String به Double در سیشارپ با استفاده از متدهای Convert.ToDouble، Parse و TryParse برای پردازش مقادیر عددی انجام میشود
تبدیل String به Double در سیشارپ
در برنامهنویسی با سیشارپ، دادهها معمولاً از منابع مختلفی مانند فایلهای متنی، بانک اطلاعاتی، فرمهای ورودی، APIها یا فایلهای CSV دریافت میشوند.
در بسیاری از این موارد، مقادیر عددی بهصورت رشته (String) در اختیار برنامه قرار میگیرند.
برای انجام عملیات ریاضی، مقایسه یا ذخیرهسازی این مقادیر در متغیرهای عددی، لازم است آنها را به نوع داده double تبدیل کنیم.
تبدیل رشته به double یکی از رایجترین عملیات در برنامهنویسی است، اما اگر به درستی انجام نشود، ممکن است باعث بروز خطاهای اجرایی یا دریافت نتایج نادرست شود. خوشبختانه سیشارپ روشهای مختلفی برای انجام این تبدیل ارائه کرده است که هر کدام کاربردهای خاص خود را دارند.
نوع داده Double چیست؟
double یکی از انواع دادههای اعشاری در سیشارپ است که برای نگهداری اعداد دارای قسمت اعشار استفاده میشود.
نمونهای از مقادیر معتبر:
double price = 125.75;
double pi = 3.14159265;
double temperature = -18.4;
چرا دادهها به صورت String دریافت میشوند؟
در بسیاری از برنامهها اطلاعات ابتدا به شکل متن دریافت میشوند.
نمونههایی از این منابع:
-
TextBox
-
فایل TXT
-
فایل CSV
-
فایل JSON
-
بانک اطلاعاتی
-
API
-
فایل XML
مثلاً مقدار زیر از یک TextBox خوانده میشود:
string number = txtPrice.Text;
برای انجام عملیات ریاضی باید آن را به double تبدیل کنیم.
آیا به دنبال یک فرصت عالی برای یادگیری برنامهنویسی هستید؟ 🚀
با دوره آموزشی سیشارپ ما، شما میتوانید مهارتهای خود را به سطح جدیدی ارتقا دهید! این دوره بهطور کامل طراحی شده تا به شما کمک کند تا از مبتدی تا پیشرفته در دنیای برنامهنویسی سیشارپ پیش بروید.
👨🏫 چرا دوره ما را انتخاب کنید؟
- محتوای جامع و عملی: با پروژههای واقعی و تمرینات عملی، یادگیری را به تجربهای جذاب تبدیل کنید.
- مدرس مجرب: از تجربه و دانش مدرس حرفهای بهرهمند شوید که شما را در هر مرحله از یادگیری راهنمایی میکنند.
- پشتیبانی ۲۴/۷: هر زمان که سوالی داشتید، ما در کنار شما خواهیم بود تا به شما کمک کنیم.
- دسترسی مادامالعمر: به محتوای دوره دسترسی دائمی داشته باشید و هر زمان که خواستید، میتوانید به آن مراجعه کنید.
💡 فرصت را از دست ندهید!
بایادگیری سیشارپ، میتوانید در دنیای فناوری اطلاعات به یک متخصص تبدیل شوید و در پروژههای جذاب و چالشبرانگیز شرکت کنید.
همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آیندهای روشنتر بردارید!
شرکت در دوره آموزش برنامه نویسی سی شارپ
روش اول: استفاده از ()Convert.ToDouble
یکی از سادهترین روشها استفاده از کلاس Convert است.
string value = "125.75";
double number = Convert.ToDouble(value);
Console.WriteLine(number);
خروجی
125.75
مثال دوم
string value = "3500";
double number = Convert.ToDouble(value);
Console.WriteLine(number);
خروجی
3500
مزایا
- ساده
- خوانا
- مناسب اکثر پروژهها
معایب
اگر مقدار معتبر نباشد برنامه خطا تولید میکند.
مثال
string value = "ABC";
double number = Convert.ToDouble(value);
نتیجه
FormatException
روش دوم: استفاده از ()double.Parse
روش محبوب دیگر استفاده از متد Parse است.
string value = "25.50";
double number = double.Parse(value);
Console.WriteLine(number);
مثال
string number = "98.2";
Console.WriteLine(double.Parse(number));
خروجی
98.2
مزایا
- سریع
- مناسب زمانی که از معتبر بودن داده مطمئن هستید.
معایب
در صورت نامعتبر بودن رشته خطا ایجاد میکند.
روش سوم: استفاده از ()double.TryParse
بهترین روش برای اکثر پروژهها استفاده از TryParse است.
string value = "145.8";
if (double.TryParse(value, out double number))
{
Console.WriteLine(number);
}
else
{
Console.WriteLine("Invalid Number");
}
اگر مقدار معتبر نباشد
string value = "Hello";
if (double.TryParse(value, out double number))
{
Console.WriteLine(number);
}
else
{
Console.WriteLine("Error");
}
خروجی
Error
مزایای TryParse در سیشارپ
-
بدون Exception
-
سریع
-
مناسب فرمهای ورود اطلاعات
-
مناسب API
-
مناسب پروژههای بزرگ
تبدیل مقدار TextBox
if (double.TryParse(txtPrice.Text, out double price))
{
Console.WriteLine(price);
}
else
{
Console.WriteLine("عدد معتبر نیست.");
}
تبدیل داده دریافتی از فایل
فرض کنید فایل شامل مقدار زیر باشد.
350.95
کد
string value = File.ReadAllText("price.txt");
double price = Convert.ToDouble(value);
Console.WriteLine(price);
تبدیل دادههای CSV
string[] values =
{
"12.5",
"44.8",
"89.1"
};
foreach (string item in values)
{
if (double.TryParse(item, out double number))
{
Console.WriteLine(number);
}
}
تبدیل با CultureInfo
گاهی جداکننده اعشار در سیستمهای مختلف متفاوت است.
مثلاً
15.45
یا
15,45
برای کنترل این موضوع از CultureInfo استفاده میکنیم.
using System.Globalization;
string value = "125.75";
double number = double.Parse(
value,
CultureInfo.InvariantCulture);
Console.WriteLine(number);
استفاده از NumberStyles
using System.Globalization;
string value = "2500.50";
double number =
double.Parse(
value,
NumberStyles.Float,
CultureInfo.InvariantCulture);
Console.WriteLine(number);
تبدیل رشته دارای فاصله
string value = " 123.45 ";
double number = Convert.ToDouble(value);
Console.WriteLine(number);
خروجی
123.45
تبدیل رشته دارای علامت منفی
string value = "-150.5";
double number = Convert.ToDouble(value);
Console.WriteLine(number);
تبدیل مقدار صفر
string value = "0";
double number = Convert.ToDouble(value);
تبدیل عدد صحیح
string value = "45";
double number = Convert.ToDouble(value);
خروجی
45
تبدیل رشته Null
string value = null;
double number = Convert.ToDouble(value);
خروجی
0
در حالی که
double.Parse(value);
خطا تولید میکند.
مدیریت Exception
try
{
string value = "ABC";
double number =
Convert.ToDouble(value);
}
catch (FormatException)
{
Console.WriteLine("فرمت عدد صحیح نیست.");
}
تبدیل لیستی از رشتهها
List<string> prices = new()
{
"12.5",
"50",
"87.45",
"100.2"
};
foreach (string item in prices)
{
if (double.TryParse(item, out double price))
{
Console.WriteLine(price);
}
}
تبدیل هنگام خواندن فایل CSV
foreach (string line in File.ReadLines("data.csv"))
{
if (double.TryParse(line, out double value))
{
Console.WriteLine(value);
}
}
استفاده در LINQ
string[] values =
{
"12.5",
"15.8",
"30.1"
};
var numbers =
values.Select(double.Parse);
foreach (double item in numbers)
{
Console.WriteLine(item);
}
تفاوت Parse و TryParse در سی شارپ
| Parse | TryParse |
| در صورت خطا Exception ایجاد میکند | خطا ایجاد نمیکند |
| نیاز به try-catch دارد | نیاز ندارد |
| برای دادههای معتبر مناسب است | برای دادههای نامعتبر مناسبتر است |
| خروجی مستقیم برمیگرداند | از پارامتر out استفاده میکند |
تفاوت Convert و Parse در سی شارپ
| Convert.ToDouble | double.Parse |
| مقدار null را به 0 تبدیل میکند | برای null خطا ایجاد میکند |
| استفاده آسان | کنترل بیشتر روی فرمتها |
| مناسب تبدیلهای عمومی | مناسب زمانی که داده معتبر است |
چه زمانی از هر روش استفاده کنیم؟
| روش | کاربرد |
| ()Convert.ToDouble | تبدیلهای ساده و عمومی |
| ()double.Parse | زمانی که از معتبر بودن داده مطمئن هستید |
| ()double.TryParse | دریافت اطلاعات از کاربر، فایل یا API و جلوگیری از بروز خطا |
| ()double.Parse با CultureInfo | زمانی که فرمت اعشار وابسته به زبان یا منطقه است |
نکات مهم تبدیل String به Double در سیشارپ
- همیشه قبل از تبدیل، معتبر بودن داده را بررسی کنید.
- برای ورودی کاربران از TryParse استفاده کنید.
- در پروژههای چندزبانه به تفاوت جداکننده اعشار (. و ,) توجه داشته باشید.
- در صورت کار با دادههای مالی که دقت بالایی نیاز دارند، از نوع داده decimal بهجای double استفاده کنید.
- از مدیریت استثنا (try-catch) در مواردی که احتمال خطا وجود دارد بهره ببرید.
اشتباهات رایج تبدیل String به Double در سیشارپ
-
استفاده از Parse بدون اعتبارسنجی
double number = double.Parse(txtPrice.Text);
اگر ورودی نامعتبر باشد، برنامه با خطا متوقف میشود.
-
نادیده گرفتن Culture
string value = "12,75";
در برخی تنظیمات منطقهای ممکن است این مقدار بهدرستی تبدیل نشود.
-
استفاده از Convert برای دادههای نامعتبر
string value = "ABC";
double number = Convert.ToDouble(value);
این کد نیز باعث ایجاد FormatException خواهد شد.
جمعبندی
تبدیل String به Double یکی از عملیاتهای متداول در برنامهنویسی با سیشارپ است و بسته به نوع داده و منبع آن، میتوان از روشهای مختلفی مانند ()Convert.ToDouble()، double.Parse و ()double.TryParse استفاده کرد.
اگر دادهها از کاربر، فایل یا سرویسهای خارجی دریافت میشوند، TryParse به دلیل جلوگیری از ایجاد استثنا و افزایش پایداری برنامه، انتخاب مناسبی است. همچنین در پروژههایی که با فرمتهای مختلف عددی سروکار دارند، استفاده از CultureInfo به تبدیل صحیح مقادیر اعشاری کمک میکند.
آشنایی با این روشها باعث میشود برنامهها در برابر ورودیهای نامعتبر مقاومتر، قابل اعتمادتر و نگهداری آنها آسانتر باشد.




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