PDA

View Full Version : مشکل در تقسبم در یک عدد در صفر



sadeghpa80
جمعه 27 دی 1392, 00:10 صبح
کد من :


txtQty.Text = (float.Parse(txtWeight.Text) / float.Parse(txtn.Text)).ToString();

();

به این صورته
اون txtweight و txtn از نوع float هستن.
حالا در مواقعی اون txtn = 0 هستش که در صورت تقسیم error میده و txtqty مقدار Infinity بر میگردونه
حالا چی کار کنم که موقع برگردوندنه Infinity مقدارش 0 بشه یا txtqty مقدار 0 برگردونه
ممنون

General-Xenon
جمعه 27 دی 1392, 08:16 صبح
کد من :


txtQty.Text = (float.Parse(txtWeight.Text) / float.Parse(txtn.Text)).ToString();

();

به این صورته
اون txtweight و txtn از نوع float هستن.
حالا در مواقعی اون txtn = 0 هستش که در صورت تقسیم error میده و txtqty مقدار Infinity بر میگردونه
حالا چی کار کنم که موقع برگردوندنه Infinity مقدارش 0 بشه یا txtqty مقدار 0 برگردونه
ممنون
سلام
txtQty.Text =((txtWeight.Text != "0" && txtn.Text != "0")? (float.Parse(txtWeight.Text) / float.Parse(txtn.Text)):0);

gerdioz
جمعه 27 دی 1392, 14:26 عصر
سلام دوست من

try
{
txtQty.Text = (float.Parse(txtWeight.Text) / float.Parse(txtn.Text)).ToString();
}
catch
{
txtQty.Text =="0";
}

vira1368
جمعه 27 دی 1392, 19:43 عصر
سلام دوست من

try
{
txtQty.Text = (float.Parse(txtWeight.Text) / float.Parse(txtn.Text)).ToString();
}
catch
{
txtQty.Text =="0";
}



بدنه catch هیچوقت اجرا نمیشه!

sadeghpa80
جمعه 27 دی 1392, 22:14 عصر
سلام
txtQty.Text =((txtWeight.Text != "0" && txtn.Text != "0")? (float.Parse(txtWeight.Text) / float.Parse(txtn.Text)):0);

ممنون اما این کد اررور میده

sadeghpa80
جمعه 27 دی 1392, 22:19 عصر
سلام دوست من

try
{
txtQty.Text = (float.Parse(txtWeight.Text) / float.Parse(txtn.Text)).ToString();
}
catch
{
txtQty.Text =="0";
}


طبق گفته دوستمون فکر نکنم catch اصلا اجرا بشه چون به اروری بر نمی خوره که بخواد بره تو catch

vira1368
جمعه 27 دی 1392, 23:41 عصر
ممنون اما این کد اررور میده

مقدار اعشاری رو دارین وارد textBox میکنید، برای همین اررور میده.

float c = float.Parse(txtWeight.Text) / float.Parse(txtn.Text);
txtQty.Text = ((txtWeight.Text != "0" && txtn.Text != "0") ? c.ToString() : "0");

gerdioz
شنبه 28 دی 1392, 11:48 صبح
سلام دوست عزیز چرا به خطا نمی خوره
1 - مقدار تکست باکس صورت شما غیر عددی باشه و نتونه به عدد تبدیل کنه
2 - مقدار تکست باکس مخرج شما غیر عددی باشه و نتونه به عدد تبدیل کنه
3 - مقدار کسر مخرج شما صفر باشه و خطای تقسیم بر صفر بده

شاید من دارم اشتباه میکنم :متفکر:

vira1368
شنبه 28 دی 1392, 13:11 عصر
سلام دوست عزیز چرا به خطا نمی خوره
1 - مقدار تکست باکس صورت شما غیر عددی باشه و نتونه به عدد تبدیل کنه
2 - مقدار تکست باکس مخرج شما غیر عددی باشه و نتونه به عدد تبدیل کنه
3 - مقدار کسر مخرج شما صفر باشه و خطای تقسیم بر صفر بده

شاید من دارم اشتباه میکنم :متفکر:

در موارد 1و2 درست میگید اگر غیر عدد وارد بشه خطا میگیره، ولی سوال برای این بود که مخرج 0 نشه!
در asp.net وقتی عددی تقسیم بر 0 میشه مقدار infinty رو برمیگردونه. اون خطای تقسیم بر صفر در برنامه های کاربردی #C رخ میده.

sadeghpa80
شنبه 28 دی 1392, 15:11 عصر
سلام دوست عزیز چرا به خطا نمی خوره
1 - مقدار تکست باکس صورت شما غیر عددی باشه و نتونه به عدد تبدیل کنه
2 - مقدار تکست باکس مخرج شما غیر عددی باشه و نتونه به عدد تبدیل کنه
3 - مقدار کسر مخرج شما صفر باشه و خطای تقسیم بر صفر بده

شاید من دارم اشتباه میکنم :متفکر:


در موارد 1و2 درست میگید اگر غیر عدد وارد بشه خطا میگیره، ولی سوال برای این بود که مخرج 0 نشه!
در asp.net وقتی عددی تقسیم بر 0 میشه مقدار infinty رو برمیگردونه. اون خطای تقسیم بر صفر در برنامه های کاربردی #C رخ میده.

دقیقا درست میگن چون مقدار Infinity برمیگردونه ارور محصوب نمیشه .
حالا نمی دونم چی کار کنم

vira1368
یک شنبه 29 دی 1392, 00:06 صبح
دقیقا درست میگن چون مقدار Infinity برمیگردونه ارور محصوب نمیشه .
حالا نمی دونم چی کار کنم
این جوابتون رو نداد؟

float c = float.Parse(txtWeight.Text) / float.Parse(txtn.Text);
txtQty.Text = ((txtn.Text != "0") ? c.ToString() : "0");

sadeghpa80
یک شنبه 29 دی 1392, 17:29 عصر
این جوابتون رو نداد؟

float c = float.Parse(txtWeight.Text) / float.Parse(txtn.Text);
txtQty.Text = ((txtn.Text != "0") ? c.ToString() : "0");


نه ممنون بی خیال تقسیم شدم با یه if و else به جورایی حلش کردم

Majid.Stu66
یک شنبه 29 دی 1392, 17:49 عصر
با سلام و خسته نباشید
دوست عزیز ببین این خط کد می تونه کمکت کنه


txtQty.Text = (float.Parse(txtWeight.Text) / float.Parse(txtn.Text)).ToString().Replace("Infinity", "0").Replace("NaN", "0");


باید دوتا مشکل داشته باشی صفر بودن مخرج و صفر بودن صورت و مخرج همزمان که به ترتیب باعث
Infinity و
NaN میشه .