![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Округление [D5, Win95/98]
moorcat © (2002-12-09 12:52:00)Как округлить тип Real до необходимого значения? (Например до сотых)
Anatoly Podgoretsky (2002-12-09 14:13:00) [1]Для любителей
procedure TForm1.Button1Click(Sender: TObject);
var
Num:Single;
I : Integer;
begin
Num := 0.02;
ShowMessage(FloatToStr(Num));
ShowMessage(FloatToStr(Trunc(Num * 100)/100));
end;
Separator (2002-12-09 13:34:00) [2]Зачем так мучатся?
function RoundNumber(Value: double; Digit: byte): string;
var
Factor: Extended;
begin
Factor:= Int(Exp(Digit*Ln(10)));
Result:= FloatToStr(Round(Factor*Value)/Factor);
end;
moorcat (2002-12-09 13:32:00) [3]Например, так:
function TForm1.Okrugl(cs: double; numb: integer): double;
var
db,db1,db2: double;
i: int64;
ii,ink,i1: integer;
begin
db:=cs-int(cs);
ink:=1;
for ii:=1 to numb
do ink:=ink*10;
db1:=db*ink;
db2:=cs*ink*100;
i:=trunc(int(db2)/100);
i1:=trunc(db2-i*100);
if i1>49
then inc(i);
result:=i/ink;
end;
Виктор Щербаков (2002-12-09 13:03:00) [4]OlegMsc © (09.12.02 13:02)
Ага. Например умножить на сто, округлить до целых и поделить на сто.
OlegMsc (2002-12-09 13:02:00) [5]жаль :(
но наверное есть другая...
я просто в этом уверен :)
Axis_of_Evil (2002-12-09 13:02:00) [6]свою написать
Виктор Щербаков (2002-12-09 13:00:00) [7]Не обманывай. В Д5 нет такой функции :)
OlegMsc (2002-12-09 12:57:00) [8]RoundTo(...,...)