PDA

View Full Version : مبتدی: تبدیل عدد



hamidtmu
چهارشنبه 12 دی 1397, 18:26 عصر
با سلام دوستان /.یه سوال داشتم .


int txt1, txt2;
txt1 = Int32.Parse(textBox1.Text);
txt2 = Int32.Parse(textBox2.Text);
vmekanik.Text = ((txt1 + txt2) / 2).ToString();


یه کد نوشتم به صورت بالا ولی اعشار را نشون نمیده.
مثل اینکه استرینگ مخصوص اعشار نیست و فلات و دابل مخصوص این قضیست
ولی چجوری با اونا کار می کنند
موقع تقسیم میخام اعداد اعشاری هم نمایش داده بشه
ترجیحا تا دو رقم اعشار

Mahmoud.Afrad
چهارشنبه 12 دی 1397, 21:50 عصر
در سی شارپ ، یک سمت تقسیم باید عدد اعشاری باشد تا نتیجه هم اعشاری بشود.

hamidtmu
چهارشنبه 12 دی 1397, 22:18 عصر
در سی شارپ ، یک سمت تقسیم باید عدد اعشاری باشد تا نتیجه هم اعشاری بشود.

پس کدم درسته؟ . یعنی منظورم اینه که اون تو استرینگ اخر جمله درسته یا باید به صورت زیر باشه یا هر دو غلطه

int txt1, txt2;
txt1 = Int32.Parse(textBox1.Text);
txt2 = Int32.Parse(textBox2.Text);
vmekanik.Text = ((txt1 + txt2) / 2).Convert.ToBoolean();

danialafshari
چهارشنبه 12 دی 1397, 22:55 عصر
با سلام
وقتی خروجی ممکنه اعشار بشه و تقسیم هم هست باید از نوع اعشاری استفاده کنید می تونی txt1 و txt2 رو double بگیری
از راه متد :

public double Avg(double a, double b)
{
return ((a + b) / 2);
}

استفاده:

vmekanik.Text = Avg(double.Parse(textBox1.Text), double.Parse(textBox2.Text)).ToString();

hamidtmu
پنج شنبه 13 دی 1397, 00:22 صبح
با سلام
وقتی خروجی ممکنه اعشار بشه و تقسیم هم هست باید از نوع اعشاری استفاده کنید می تونی txt1 و txt2 رو double بگیری
از راه متد :

public double Avg(double a, double b)
{
return ((a + b) / 2);
}

استفاده:

vmekanik.Text = Avg(double.Parse(textBox1.Text), double.Parse(textBox2.Text)).ToString();

بحث اینه که فقط یه عدد نیست. مقادیر مختلفی دارم که بر اعداد مختلفی تقسیم می شوند(مثلا 10 مدل تقسیم که بعضیاشون بر سه هستند و متفاوتند)مثل معدل گرفتن . یک راه ساده که بتونم اعداد را تقسیم کنم و نتیجه اعشاری را نشان بده به چه صورته

danialafshari
پنج شنبه 13 دی 1397, 18:56 عصر
با سلام
هنوز متوجه نشدم با مثال توضیح بدید
ولی با متد زیر شما هر تعداد ورودی داشته باشید رو میانگینشون رو محاسبه میکنه

public static double Avg(params double[] num)
{
double sum = 0, avg;
foreach (var item in num)
{
sum += item;
}
avg = sum / num.Count();
return avg;
}



Console.WriteLine(Avg(15, 17, 10));

pe32_64
پنج شنبه 13 دی 1397, 19:33 عصر
با سلام دوستان /.یه سوال داشتم .


int txt1, txt2;
txt1 = Int32.Parse(textBox1.Text);
txt2 = Int32.Parse(textBox2.Text);
vmekanik.Text = ((txt1 + txt2) / 2).ToString();


یه کد نوشتم به صورت بالا ولی اعشار را نشون نمیده.
مثل اینکه استرینگ مخصوص اعشار نیست و فلات و دابل مخصوص این قضیست
ولی چجوری با اونا کار می کنند
موقع تقسیم میخام اعداد اعشاری هم نمایش داده بشه
ترجیحا تا دو رقم اعشار
کد خط دوم و سوم رو تغییر بدید : float number = Single.Parse()