PDA

View Full Version : مبتدی: تقسیم صحیح



farzane_fn
سه شنبه 12 آبان 1388, 18:46 عصر
با سلام خدمت همه اساتید و بزرگواران:
سوالم خیلی مبتدی است ولی سرچ هم کردم به نتیجه ای نرسیدم. تقسیم صحیح در سی شارپ با چه کلمه کلیدی انجام می شه؟ و اگه لطف کنین سایر عملگرهای موجود در سی شارپ رو بنویسید یه دنیا ممنون خواهم شد..از بذل عنایت اساتید بزرگوارم خاضعانه تشکر می کنم..

alireza_tavakol
سه شنبه 12 آبان 1388, 18:52 عصر
http://msdn.microsoft.com/en-us/library/6a71f45d%28VS.80%29.aspx

saed2006
دوشنبه 18 آبان 1388, 22:46 عصر
حالا تقسیم صحیح تو c# ]چیه؟

saed2006
دوشنبه 18 آبان 1388, 23:21 عصر
یعنی کسی نمیدونه که جواب بده؟

sky_in_iran
سه شنبه 19 آبان 1388, 08:00 صبح
سلام دوستان تقسيم صحيح علامتش % تقسيم عشاري / ، ضرب * ، + علامت جمع اگر بخواهيد يك واحد فقط اضافه كني ++ ، - علامت منها است اگر بخواهيد يك واحد منها كنيد -- ، & علامت (And) كه مثلا تو if به كار ميره ( if (a>b & c>d ، || علامت (OR) مثلا ( if (a||b & c||d و ديگر علائم كه زياده دوست عزيز اگر خواستيد به Email من يك mail خالي بزنيد تا براتون يك pdf فارسي آموزش زبان c# كه كامل و خوبه براتون mail كنم حجمشم 12mb است اگر بازم در باره علائم سوالي داشتيد در خدمتم

saed2006
سه شنبه 19 آبان 1388, 13:31 عصر
% رو واسه عدد
36.45 % 69.33
چند باید نشون بده؟

bahar_engineer
سه شنبه 19 آبان 1388, 14:22 عصر
تقسیم در سی شارپ علامتش / هست که اگه نوع داده هایی که در این تقسیم استفاده می کنید صحیح باشن نتیجه صحیح خواهد بود و اگر اعشاری باشند ، نتیجه اعشاری می شه

اگه اعدادتون اعشاری باشن اما بخواین نتیجه صحیح باشه کافیهconvert کنین به int که می تونین نتیجه رو به int برگردونین این دقیق تره

و % علامتی هست که باقیمانده تقسیم صحیح رو به شما می ده ...
(چرا؟ چون هرگاه تقسیمی باقیمانده داشته باشه اون تقسیم صحیحه ، اصلا اعشار به این معناست که دیگه ما باقیمانده ای نداشته باشیم.OK!)

یعنی اگه بنویسین



10%3 = 1


نتیجه 1 خواهد بود یعنی 10 تقسیم بر 3 مساوی با 3 می شه و یکی هم باقی می مونه

به عبارتی : فرض کنید a=10 و b=3

حاصل a%b=1 ...

saed2006
سه شنبه 19 آبان 1388, 14:33 عصر
36.45 / 69.33
نتیجش میشه 1.9
من میخوام 1 برگردونه با کانورت که نمیشه چون 2 برمیگردونه

bahar_engineer
سه شنبه 19 آبان 1388, 15:19 عصر
خوب من گفتم نتیجه رو به اینتیجر تبدیل کن که دقیق تر بدست بیاد

اگه می خوای نتیجه 1 بشه یعنی کف نتیجه رو بدست بیاری (گرد بشه به سمت عدد کوچکتر) اول هر کدوم از a,b رو که همون مقدار های اعشاری رو بهشون می دی ، تبدیل به int16 بکن و هر کدوم رو توی یه متغیر جدا ذخیره کن ... حالا اون ها رو تقسیم کن :



double a = 36.45 ,b = 69.33;
int c , d, f;
d = Convert.ToInt16(a);
f = Convert.ToInt16(b);
c = f / d;
label1.Text = c.ToString();


نتیجه : 1

saed2006
سه شنبه 19 آبان 1388, 15:42 عصر
اینطوری نتیجه تقسیم درست در نمیاد
فرض کن عدد
33.99/3.99
اگه اینطوری که میگی 33/3 بشه نتیجه بدست میاد 11
در صورتی که باید 8 میشد

saed2006
سه شنبه 19 آبان 1388, 15:44 عصر
جالبه ها یعنی کسی تا حالا به این موضوعات برخورد نکرده ؟
جوابی چیزی

saed2006
سه شنبه 19 آبان 1388, 17:29 عصر
اقا من یه بار دیگه سوالم رو میپرسم
من میخوام تقسیم صحیح انجام بدم یعنی نتیجه تقسیم هر چی شد رند به پایین بشه

saed2006
سه شنبه 19 آبان 1388, 17:50 عصر
اینم جوابش



public double GetInteger(double value)
{
char ch = '.';
string[] str = value.ToString().Split(ch);
return Convert.ToDouble(str[0]);
}

mn_zandy63
سه شنبه 19 آبان 1388, 21:41 عصر
سلام دوست من،
مگه نمیخوای کف یک عدد اعشاری رو بدست بیاری؟
با پست هایی که خوندم اینقدر تعجب کردم، که مطمئن نیستم نسبت به برداشتم از سوال، شاید من درست متوجه نشدم.
اما اگه منظورت بدست آوردن کف یک عدد اعشاری هست، تابع floor کارش همینه.
به فضای نام math یک نیگاه بنداز.

موفق باشی

sky_in_iran
چهارشنبه 20 آبان 1388, 14:40 عصر
با سلام و خسته نباشيد خدمت دوستان
فكر كنم از سوال اصلي خارج شديم دقيقا متوجه نشدم الان چي ميخوايم ؟ من تو توضيح قبليم همونجور كه يكي از دوستان اشاره كرد % به عنوان علامت تقسيم صحيح به كار برده بودم كه ايشون اصلاح كردن خيلي ازشون ممنونم درسته براي باقيمانده به كار ميره اما حالا با توجه به مدتي كار كردم معمولا تو تقسيمات صحيح به دنبال باقيمانده هستند تا خارج قسمت ! اگه اشتباه ميكنم دوستان لطف كنن اصلاح كنن ممنون ميشم . براي رند كردن مگه تابع مخصوص نداريم كه دوستان انقدر بالا و پايين مي كنن ؟