محاسبه نکردن اعداد اعشاری در کد ماشین حساب در سی شارپ
سلام دوستان خوب . تو سی شارپ در قسمت اپلیکیشن فورم یک ماشین حساب ساختم حالا نمیدونم چرا اعداد اعشاری رو حساب نمی کنه ، اینم کد برنامه برای زمانی که دو Label جمع می شن:
double a, b, c; a = Convert.ToDouble(label1.Text); b = Convert.ToDouble(label2.Text); c = a + b; label1.Text = Convert.ToString(c); label2.Text = ""; label3.Text = "";
6 پاسخ
من کدی که در سوالتون ارسال کردید رو در visual stadio اجرا کردم و خود کد به تنهایی بدون ایراد کار میکنه و تصاویر زیر صحت کد ها رو نشون میده
و اما در ادامه که تکه کدی قرار دادی و اضهار دارید که این کد ارور میده باید بگم صورت مسئله شما واضح نیست چون تمام کد های شما رو در اختیار نداریم هر چند خیلی هم نیازی به این کار نیست به هر حال من اون کدی رو که شما در تصویر به پیوست ارسال کردید رو در VS اجرا کردم و باز هم بدون خطا این کار انجام شد تصاویر زیر رو نگاه کنید:
تصویر بالا دقیقاً همان کدی هست که من در تصویر شما میبینم یعنی فقط کدی است که در Button قرار داره
خب این ها کد و design مسئله هست و اما خروجی برنامه به این صورت هست
تصویر بالا قبل از کلیک بر روی Button هست یعنی فقط برنامه Run شده است
تصویر بالا پس از یک بار کلیک بر روی Button هست
تصویر بالا پس از دو بار کلیک بر روی Button هست
تصویر بالا پس از سه بار کلیک بر روی Button هست
پس میبینید که هر بار که بر روی Button کلیک میشود خروجی تغییر میکند
به هر حال برای ایجاد یه ماشین حساب من اصلاً پیشنهاد نمیکنم داده ها تون رو از Lable بگیرید خیلی بهتره که با TextBox کار کنید. اگر سوالتون رو پاسخ دادم که هیچ وگرنه اطلاعات بیشتری رو در اختیار قرار بدید تا بشه راحت تر راهنمایی کرد.
کدتون رو به حالت زیر تغییر بدید
double a, b, c; a = Convert.ToDouble(label1.Text); b = Convert.ToDouble(label2.Text); c = a + b; label1.Text = c.ToString(); label2.Text = ""; label3.Text = "";
وقتی که یکی از LAbel ها عدد اعشاری درونش باشه به محض زدن مساوی این رو میاره
بایک break point در لحضه خطا مقدار ببین مقدار اون lable به چه شکل ذخیره شده
شاید بخاطر بخاطر چپ به راست کردن مقدار نمایشی با مقدار ذخیره ای متفاوت باشه
درست نشد!
ممنون از تمام دوستان
مشکل از پاک نکردن کش برنامه بود دقیقا همون برنامه رو تو یک برنامه ی دیگه نوشتم درست شد ممنون از همه تان