نقل قول: گرد کردن اعداد صحیح
نمیدونم برای این کار تابعی هست یا نه ( احتمالا هست ) ولی من یه تکه کد نوشتم و درست کار میکنه :
Function RoundNumber(Number: String): String;
var
Num1,Num2: Byte;
begin
Num1:= StrToInt(Number[Length(Number)]);
Num2:= StrToInt(Number[Length(Number)-1]);
if Num1>= 6 then Inc(Num2);
Result:= Copy(Number,0,Length(Number)-2)+ IntToStr(Num2)+'0';
end;
نقل قول: گرد کردن اعداد صحیح
نقل قول:
نوشته شده توسط
Delphi-7
با سلام
میدونم که از نظر ریاضی این حرف معنی نداره.(چون گرد کردن مخصوص اعداد اعشاریه)
اما میخام مثلا اگه عدد 123 برنامم گرفت تبدیل بشه به 120
یا اگه 128 گرفت تبدیل بشه به 130
منظورم اینه که اگه عدد آخر کمتر از 5 بود بشه 0 و اگه بیشتر از 5 بود بشه 10.
ممنون از جوابتون.
سلام دوست عزيز
يه راه حل اينه كه اول عددت رو بر ده تقسيم كني بعد اون رو گرد كني و بعد دوباره در 10 ضرب كني
روتين زير يه عدد از يك Edit دريافت ميكنه و اون رو به همون صورت كه شما ميخوايد گرد ميكنه
procedure TForm1.Button1Click(Sender: TObject);
begin
SetRoundMode(rmUP);
Edit1.Text:=IntToStr(Round(StrToInt(Edit1.Text)/10)*10);
end;
نقل قول: گرد کردن اعداد صحیح
دوستان همه يه منظورو دارن ولي به روش هاي مختلف
يكي زحمت بكشه يه فايل براي دانلود برا همه بذاره،بقيه استفاده كنن و تغييرش بدن
اصل دوستان اينو مي خوان كه
هر عددي رو خواستم به هر عدد رندي تبديل كنند
مثال
1252 بشه 1260 يا 1300
16525 بشه 16530 يا 16600 يا 17000
1265347 بشه 1265350 يا 1265400 يا 1266000 يا 127000 يا 130000
و تعداد رقم هاي رند كردن دست خودشون باشه !!
مثال آخري
از راست به چپ
1رقم يا 2رقم يا 3رقم يا 4رقم
نقل قول: گرد کردن اعداد صحیح
يه چيزي مثل اين
Label1.Caption = Math.Round(Text1.Text, 3)
ولي برا اعداد صحيح
نقل قول: گرد کردن اعداد صحیح
سلام
چقدر کیف میکنم از حل اینجور سوالات ، به آدم انرژی میده :
برای توضیح ، یه حالت ساده برای فقط رقم یکان :
i2:= Round(i1 / 10) * 10;
حالا میشه از همین روش یه تابع قدرتمند و ساده نوشت :
function mbRound(iValue :Integer; iStep :Byte = 1):Integer;
var vStep :Integer;
begin
vStep:= Floor(Power(10, iStep));
Result:= Round(iValue / vStep) * vStep;
end;
موفق باشید
نقل قول: گرد کردن اعداد صحیح
سلام.
pascal
function RoundToNum(X: Integer; RoundParam : Integer = 10):Integer;
begin
Result := (X div RoundParam) * RoundParam;
if (((X - Result) * 2) > RoundParam) then
Result := Result + RoundParam;
end;
C++
int RoundToNum(int X, int RoundParam)
{
int Result = int(X / RoundParam) * RoundParam;
if (((X - Result) * 2) > RoundParam)
Result += RoundParam;
return Result;
};