سلام
من از تابع زیر تو قسمت صندوق یه نرم افزار استفاده کردم
function Gerd(N: Longint; Taghrib: Word): Longint;
var
M: Longint;
begin
if (N <= Taghrib) then
begin
Gerd := N;
Exit;
end;
M := N mod Taghrib;
if M > (Taghrib div 2) then N := ((N div Taghrib) * Taghrib) + Taghrib
else
if M < (Taghrib div 2) then N := (N div Taghrib) * Taghrib;
Gerd := N;
end;
این تابع یه مقدار ورودی (N) و یه عدد برای گرد کردن (Taghrib) دریافت میکنه و مقدار ورودی رو نسبت به اون گرد میکنه. اگه مقدار ورودی به عدد گرد کردن نزدیک باشه به سمت بالا گردش میکنه وگرنه به سمت پایین.
مثلاً اگه قرار باشه اعداد رو با تقریب کمتر از 50 گرد کنیم
1001 میشه 1000
1012 میشه 1000
1024 میشه 1000
1025 میشه 1025
1026 میشه 1050
1049 میشه 1050
1099 میشه 1100 و ...
اما اگه بخواین اعداد ورودی فقط به سمت پایین گرد بشن، میتونید قسمتهای قرمز رنگ رو حذف کنید