PDA

View Full Version : سوال: محدودیت در اجرای عملیات ریاضی



kordestan
پنج شنبه 02 خرداد 1392, 20:37 عصر
سلام دوستان
من دو تا لیبل دارم کهمحتویات هردو عدد هستند ..وقتی اعداد این دو رو با هم جمع و تفریق مینکم وقتی عدد داخل یکی از لیبل به ده رقم برسه ارور میده برای تبدیل از این دو دستور استفاده میکنم:

convert.toint32
و
int.parse

از هر دو استفاده کردم ولی بازم عدد که به 10 رقم برسه خط میده..یعنی تبدیل کننده ی دیگه ای نیست که من باهاش بتونم هر چند عدد که بخوام روش عملیات ریاضی انجام بدم؟

wolf_majid
جمعه 03 خرداد 1392, 11:38 صبح
تمامی نوع های استاندارد تبدیل دارند
long.Parse()
double.Parse()
و
....

ali.bahrami
جمعه 03 خرداد 1392, 20:13 عصر
میتونی از decimal بدون اعشار استفاده کنی

kordestan
جمعه 03 خرداد 1392, 23:54 عصر
دوستان مثل اینکه منظورم رو خوب نرسوندم!!!!

مثلا میخوام مقدار این کد رو بارها اجرا کنم
int mab1 = Convert.ToInt32(txt_mablagh.Text);
int mab2 = Convert.ToInt32(lbl_kol.Tex);
int sum = mab1 + mab2;
lbl_kol.Text = sum.ToString(););


حالا وقتی عملیات جمع رو تو خط سوم انجام میدم تا 9 رقم رو میتونه ذخیره کنه(تا 999،000،000) یعنی 9 رقم...وقتی بشه 10 رقم(1000،000،000) ارور میده...حالا من میخوام به جای
convert.toint32 یه تبدیل کننده دیگه بنویسم که هر چند عدد رو که میخوام بتونه تبدیل و محاسبه کنه

از int.parse , convert.toint32 نتیجه ای نگرفتم و ارور میدن

ali.bahrami
شنبه 04 خرداد 1392, 00:23 صبح
خوب دوست عزیز int بیشتر از این مقدار را نمیتونه ذخیره کنه شما باید متغیرت را مثلا از نوع decimal بگیری اون برای تبدیل هم میتونی از decimal.parse استفاده کنی.
دسیمال بدون اعشار فکر کنم تا 22 رقم را میتونه ذخیره کنه.


decimal mab1 = Convert.Todecimal(txt_mablgh.Text);
decimal Sum = ....

drawback
شنبه 04 خرداد 1392, 07:20 صبح
سلام شما می تونید از این دستور استفاده کنید و تا هر رقم را که به خواهید بدست بیاورید من با این دستور تا 4 میلیون عدد فیبوناچی رو بدست آوردم
long mab1 = Convert.ToInt64(txt_mablagh.Text);
long mab2 = Convert.ToInt64(lbl_kol.Tex);
long sum = mab1 + mab2;
lbl_kol.Text = sum.ToString();

kordestan
شنبه 04 خرداد 1392, 20:23 عصر
خوب دوست عزیز int بیشتر از این مقدار را نمیتونه ذخیره کنه شما باید متغیرت را مثلا از نوع decimal بگیری اون برای تبدیل هم میتونی از decimal.parse استفاده کنی.
دسیمال بدون اعشار فکر کنم تا 22 رقم را میتونه ذخیره کنه.


decimal mab1 = Convert.Todecimal(txt_mablgh.Text);
decimal Sum = ....

خیلی ممنون دوست عزیز خیلی به دردم خورد

kordestan
شنبه 04 خرداد 1392, 20:25 عصر
سلام شما می تونید از این دستور استفاده کنید و تا هر رقم را که به خواهید بدست بیاورید من با این دستور تا 4 میلیون عدد فیبوناچی رو بدست آوردم
long mab1 = Convert.ToInt64(txt_mablagh.Text);
long mab2 = Convert.ToInt64(lbl_kol.Tex);
long sum = mab1 + mab2;
lbl_kol.Text = sum.ToString();
دوست عزیز من کد شما رو هم آزمایش کردم....یک عدد بزرگ را با کد شما و ali.bahrami (http://barnamenevis.org/member.php?138690-ali.bahrami) تست کردم ...مال شما ارور داد ولی مال ali.bahrami (http://barnamenevis.org/member.php?138690-ali.bahrami) جواب داد

با این حال ممنونم

ali.bahrami
شنبه 04 خرداد 1392, 21:36 عصر
خیلی ممنون دوست عزیز خیلی به دردم خورد

خواهش میکنم دوست عزیز