Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Округление [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(...,...)


Наверх

Титульная страница Поиск, карта сайта Написать письмо