PDA

View Full Version : تقسیم اعداد با div



khoshblagh
دوشنبه 22 تیر 1388, 11:03 صبح
با سلام خدمت دوستان
در هنگام تقسیم اعداد با div معمولا حاصل مورد نظر مقداری کمتر از عدد مورد انتظار میشود که احتمالا مربوط به گرد کردن عدد میباشد. برای مثال عدد 1100000 تقسیم بر 30 و دوباره ضربدر 30 حاصل 1099980 گردید . در حالیکه میبایست همان عدد اول یعنی 1100000 میشد.
به نظر شما چطور میشود این تقسیم را طوری انجام داد که عدد واقعی بدست آید.متشکرم

جواد ملاولی
دوشنبه 22 تیر 1388, 12:11 عصر
سلام. خوب از div استفاده نکن!

khoshblagh
دوشنبه 22 تیر 1388, 12:19 عصر
خوب با توجه به این موضوع که خروجی محاسبات باید به صورت عدد صحیح باشد شما چه پیشنهاد میکنید. متشکرم

tdkhakpur
دوشنبه 22 تیر 1388, 13:06 عصر
سلام
خوب شما با div اعلام میکدارید که قسمت اعشار نتیجه را جذف کند وقتی نتیجه تقسیم شما تغییر کرده انتظار برگشت به عدد قبلی به هیچ هنوان با نتیجه فعلی وجود ندارد.
میتوانید نتایج در float ذخیره و از دستور فوق هر جا نیاز شد قسمت صحیح را با div بدست بیارید

khoshblagh
دوشنبه 22 تیر 1388, 13:28 عصر
با تشکر
میتوانید نتایج در float ذخیره و از دستور فوق هر جا نیاز شد قسمت صحیح را با div بدست بیارید
لطفا در صورت امکان یک عبارت به عنوان نمونه بنویسید. متشکرم

tdkhakpur
دوشنبه 22 تیر 1388, 17:23 عصر
سلام


var
fnum : real;
begin
fnum := 11300/30;
writeln(trunc(fnum));
writeln(fnum*30:7:0);
readln;
end.

اگر از لحاظ تحقیقاتی لازم دارید با div میتوان نوشت ولی باید داخل یک پروسه این تبدیلات را انجام دهید که آن هم احتیاج به and و or های منطقی دارد که در برنامه فوق trunc از همین روش بهره گرفته است.

khoshblagh
سه شنبه 23 تیر 1388, 06:15 صبح
سلام


var
fnum : real;
begin
fnum := 11300/30;
writeln(trunc(fnum));
writeln(fnum*30:7:0);
readln;
end.

اگر از لحاظ تحقیقاتی لازم دارید با div میتوان نوشت ولی باید داخل یک پروسه این تبدیلات را انجام دهید که آن هم احتیاج به and و or های منطقی دارد که در برنامه فوق trunc از همین روش بهره گرفته است.

با تشکر از زحمت شما . من برای برنامه حقوق و دستمزد نیاز به تقسیم دارم. ضمنا در مثال بالا که شما ارایه نمودید بخشی که عدد real را به عدد صحیح تبدیل نماید مشاهده نشد. در حالیکه که شما قبلا گفتید که میتوان اول تقسیم را با flot انجام و سپس نتیجه را تبدیل به عدد صحیح نمود. لذا در صورت امکان از این مدل نمونه ارائه نمایید . متشکرم

میتوانید نتایج در float ذخیره و از دستور فوق هر جا نیاز شد قسمت صحیح را با div بدست بیارید

tdkhakpur
سه شنبه 23 تیر 1388, 22:53 عصر
سلام
با عرض پوزش من c را با delphi قاطی کردم float همان real هست.
ولی در مورد سوال شما برای گرفتن نتیجه عدد صحیح خوب دستور زیر با توجه به کد بالا که ارسال شده این کار را داخل writeln انجام میدهد.


k : integer;

k := trunc(fnum);