"

تبدیل String به Double در سی‌شارپ,تفاوت Parse و TryParse  در سی شارپ,تفاوت Convert و Parse  در سی شارپ

تبدیل String به Double در سی‌شارپ

تبدیل String به Double در سی‌شارپ با استفاده از متدهای Convert.ToDouble، Parse و TryParse برای پردازش مقادیر عددی انجام می‌شود

تیم تحریریه
1
0
07 مرداد 1405
لینک کوتاه

تبدیل String به Double در سی‌شارپ

در برنامه‌نویسی با سی‌شارپ، داده‌ها معمولاً از منابع مختلفی مانند فایل‌های متنی، بانک اطلاعاتی، فرم‌های ورودی، APIها یا فایل‌های CSV دریافت می‌شوند.
در بسیاری از این موارد، مقادیر عددی به‌صورت رشته (String) در اختیار برنامه قرار می‌گیرند.
برای انجام عملیات ریاضی، مقایسه یا ذخیره‌سازی این مقادیر در متغیرهای عددی، لازم است آن‌ها را به نوع داده double تبدیل کنیم.

تبدیل رشته به double یکی از رایج‌ترین عملیات در برنامه‌نویسی است، اما اگر به درستی انجام نشود، ممکن است باعث بروز خطاهای اجرایی یا دریافت نتایج نادرست شود. خوشبختانه سی‌شارپ روش‌های مختلفی برای انجام این تبدیل ارائه کرده است که هر کدام کاربردهای خاص خود را دارند.

 

تبدیل String به 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 استفاده می‌کند

 

 

 

تفاوت Parse و TryParse در سی شارپ



تفاوت 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 در سی‌شارپ

جمع‌بندی

تبدیل String به Double یکی از عملیات‌های متداول در برنامه‌نویسی با سی‌شارپ است و بسته به نوع داده و منبع آن، می‌توان از روش‌های مختلفی مانند ()Convert.ToDouble()، double.Parse و ()double.TryParse استفاده کرد.
اگر داده‌ها از کاربر، فایل یا سرویس‌های خارجی دریافت می‌شوند، TryParse به دلیل جلوگیری از ایجاد استثنا و افزایش پایداری برنامه، انتخاب مناسبی است. همچنین در پروژه‌هایی که با فرمت‌های مختلف عددی سروکار دارند، استفاده از CultureInfo به تبدیل صحیح مقادیر اعشاری کمک می‌کند.
آشنایی با این روش‌ها باعث می‌شود برنامه‌ها در برابر ورودی‌های نامعتبر مقاوم‌تر، قابل اعتمادتر و نگهداری آن‌ها آسان‌تر باشد.

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

کاربران ما

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

برای ارسال نظر لطفا ورود یا ثبت نام کنید

منو