جمع اعداد در سی شارپ
نویسنده : علی بجنوردی | زمان انتشار : 17 دی 1400 ساعت 18:43
جهت انجام پروژه های دانشجویی و یا تمرینهای برنامه نویسی رشته کامپیوتر میتوانید به آی دی تلگرام زیر پیام دهید
@AlirezaSepand
جمع اعداد فارسی
همانطور که می دانید در حالت عادی نمی توان مقدار TextBox هایی را که در آنها اعداد با استفاده از کاراکترهای فارسی نوشته می شوند را با هم جمع کرد. برای این کار از متد توسعه یافته زیر استفاده کنید :
public static class PersianDigit { public static string ConvertDigits(this string value) { StringBuilder StringBuilder1 = new StringBuilder(); for (int i = 0; i if (char.IsDigit(value[i])) { StringBuilder1.Append(char.GetNumericValue(value[i])); } else { StringBuilder1.Append(value[i]); } } return StringBuilder1.ToString(); } }
حال فرض کنید که می خواهید مقدار دو TextBox که دارای اعداد فارسی هستند را با هم جمع کنید:
using System; using System.Text; using System.Windows.Forms; namespace SumPersianDigit { public static class PersianDigit { public static string ConvertDigits(this string value) { StringBuilder StringBuilder1 = new StringBuilder(); for (int i = 0; i if (char.IsDigit(value[i])) { StringBuilder1.Append(char.GetNumericValue(value[i])); } else { StringBuilder1.Append(value[i]); } } return StringBuilder1.ToString(); } } public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { if ((int)e.KeyChar >= 48 && (int)e.KeyChar char)(1632 + int.Parse(e.KeyChar.ToString())); } private void textBox2_KeyPress(object sender, KeyPressEventArgs e) { if ((int)e.KeyChar >= 48 && (int)e.KeyChar char)(1632 + int.Parse(e.KeyChar.ToString())); } private void button1_Click(object sender, EventArgs e) { int number1 = int.Parse(this.textBox1.Text.ConvertDigits()); int number2 = int.Parse(this.textBox2.Text.ConvertDigits()); int result = number1 + number2; MessageBox.Show(result.ToString()); } } }
نتیجه
منبع: www.w3-farsi.com