PDA

View Full Version : سوال: جواب عجيب و غريب



navid1n2000
جمعه 29 خرداد 1388, 21:47 عصر
اين عكسو ببينين :
http://upload.iranblog.com/6/1245466564.jpg
اين عدد كارمزد خيلي عجيب و غريبه . اين كدشه :


int Mizanevam = int.Parse(txtvam.Text);
int ghestnum = int.Parse(txtnumghestvam.Text);
int darsadkarmozd = int.Parse(lblkarmozd.Text);
int karmozd = ((Mizanevam * ghestnum * darsadkarmozd) / 12000);
txtkarmozd.Text = karmozd.ToString();
textBox1.Text = c15d(txtkarmozd.Text);

من هر چي فكر كردم نفهميدم . به نظرتون اين عدد از كجا اومده ؟؟؟؟؟؟؟؟؟؟؟؟

vandermond
جمعه 29 خرداد 1388, 22:24 عصر
من شايد هنوز خيلي حرفه اي نباشم ولي با توجه به اين قطعه كد (البته ممكنه از بقيه كد مشكل داشته باشه) مشكلي نداره . تنها مشكلي كه ميتونه باشه همون فرمول محاسبه هستش.

Armin060
جمعه 29 خرداد 1388, 22:33 عصر
من هم زياد با اين كار های عجيب و غريب برخورد كردم و فكر می كردم كه كدم كاملا درست هست، اما با كمی دقت مشكل رو پيدا می كردم.
می تونی در زمان اجرا خط به خط كد های مربوط به اين مورد رو چك كنی و ببينی كه چه كار هایی انجام می دهند، حتما مشكل رو پيدا می كنی.

navid1n2000
شنبه 30 خرداد 1388, 00:09 صبح
من هم زياد با اين كار های عجيب و غريب برخورد كردم و فكر می كردم كه كدم كاملا درست هست، اما با كمی دقت مشكل رو پيدا می كردم.
می تونی در زمان اجرا خط به خط كد های مربوط به اين مورد رو چك كنی و ببينی كه چه كار هایی انجام می دهند، حتما مشكل رو پيدا می كنی.
جالبش مقدار منفيشه ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟؟
نميدونم چه طوريه ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

rnm123
شنبه 30 خرداد 1388, 00:22 صبح
دوست عزیز همانطوری که سایر دوستان هم اشاره کردند این قطعه کد ایرادی ندارد. اگر میتونی کد کامل را قرار بده تا اونرو بررسی کنیم در ضمن ایراد میتونه از دادهای ورودی هم باشه. اجرای خط به خط برنامه هم کمک زیادی میتونه بهت کنه

mohsen_csharp
شنبه 30 خرداد 1388, 11:34 صبح
دوست عزیز با توجه به اینکه شما نوع داده ای int تعریف کردید و این همه اعداد بزرگ رو در هم ضرب کردید مشخصه که مقدار از 2500000000 بزرگتر میشه و دیگه توی int جا نمیشه.
بهتره از نوع long استفاده کنید یا بهتره که روش محاسبه فرمول های رو اصلاح کنید.
مثلا به جای اینکه در فرمول شما ابتدا اعداد بزرگ را تو هم ضرب کنید عدد اول رو به 12000 تقسیم کرده و بعد در اعداد بعدی ضرب کنید.