PDA

View Full Version : تابع Round در دلفی



baran_bataravat
چهارشنبه 29 مهر 1388, 15:46 عصر
تابع Round در دلفی برای رقم اعشار .5 به این صورت است که مثلا اگر عدد 42.5 باشد به 42 گردش میکند لی اگر عدد ما 43.5 باشد به 44 گرد میکند یعنی چون 42 زوج است به پایین گرد میکند و 43 فرد است اونو به بالا گرد میکنه من چطور میتونم این مشکلو در دلفی حل کنم آیا تابع دیگری برای گرد کردن وجودد دارد که مثل Round تو Sql باشه برای رقم اعشار .5 به فرد یا زوج بودن رفم صحیحش نگاه نمیکنه هر دو را بالا گرد میکنه مثلا 42.5 میشه 43 و 43.5 هم میشه 44 من تو دلفی جیکار کنم آیا تابع دیگری وجود دارد؟؟؟؟؟

AbiriAmir
چهارشنبه 29 مهر 1388, 16:17 عصر
یه راهش اینه که خودتون Round رو شبیه سازی کنید...

young_man1365
چهارشنبه 29 مهر 1388, 16:21 عصر
واسه گرد کردن به بالا از تابع ceil استفاده کن



USES math;


a:=ceil(X);

baran_bataravat
چهارشنبه 29 مهر 1388, 16:36 عصر
مشکل من در رابطه با رقم اعشار نیم میباشد من میخوام که مثلا عدد 82.5 به 83 رند بشه ولی که عدد 82.4 به 83 رند نشه به 82 رند بشه تابع Ceil هر دو رو به 83 گرد میکنه تابع Round فقط در مورد اعدادی که رقم اعشارشون 5 هست این مشکلو داره اگر عدد یکان صحیح زوج باشه به پایین و اگه عدد صحیح یکان فرد باشه به بالا گرد میکنه من چطور این مشکلو حل کنم؟؟؟؟؟؟؟؟؟

AbiriAmir
چهارشنبه 29 مهر 1388, 16:40 عصر
باید این تابع رو شبیه سازی کنید...
یا چک کنید اگه قسمت اعشارش برابر با نیم بود دیگه خودتون به علاوه نیمش کنین و در اگر نبود از همان Round استفاده کنید...

young_man1365
چهارشنبه 29 مهر 1388, 16:43 عصر
فکر کردم منظور شما فقط گرد کردن به بالا بود! در این مورد هم کار آسونه و با استفاده از توابع ceil,floor میشه همیچن تابعی نوشت. کدش شبیه این میشه:


if ( X - Floor(X) )>=0.5 then
a:=ceil(x)
else
a:=floor(x);

vcldeveloper
چهارشنبه 29 مهر 1388, 17:28 عصر
اگر به Help دلفی برای کار با تابع Round مراجعه کنید، به شما توضیح میده که برای تغییر این رفتار می تونید از تابع SetRoundMode استفاده کنید.