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

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

Как округлить Real [D5, NT4]


Tutov Roman ©   (2002-06-17 10:37:00) 

Хочется округлить с определенной точностью . Ну например 2 знака после запятой.


Tutov Roman   (2002-06-17 14:34:00) [1]

Большое СПАСИБО !!!!


Lord Warlock   (2002-06-17 14:26:00) [2]

А можно так:

function MyRound(x: Real; n: Integer): Real;
begin
try
Result:=StrToFloat(format("%8.*f",[n,x]));
except
Result:=0;
end;
end


Tutov Roman   (2002-06-17 14:13:00) [3]

2 AK-74
А что такое IntPover ?


Anatoly Podgoretsky   (2002-06-17 12:56:00) [4]

Tutov Roman (17.06.02 11:24)
Ну вопервых в этих случаях принято приводить код, а во второых и не должно получиться, число то с плавающей запятьй, имеетщее относительную точнось, ряд чисел представимы, а ряд нет, при том вторых большинство.
Например невозможно представить число 0.02 ни в одном из имеющих форматов, всегда будет 0.02 +- дельта


AK-74   (2002-06-17 12:52:00) [5]

function MyRound(n: Real; z: Integer): Real;
var
Mult: Extended;
begin
Mult := IntPower(10,z);
result := Int((n+0.5/Mult)*Mult)/Mult;
end;


Vovik   (2002-06-17 12:03:00) [6]

Попробуй FloatToStrF(..,..,..,) - параметры точно не помню, но в Help-e найдешь.


ZyreX   (2002-06-17 11:48:00) [7]

А у меня все вышло:

...
var
r: Real;
i: Integer;
begin
r := 123.456789;
i := Trunc(r * 100);
r := i / 100;
ShowMessage(FloatToStr(r));
end;
...


Black Cat   (2002-06-17 11:35:00) [8]

RoundTo


Tutov Roman   (2002-06-17 11:24:00) [9]

Сделал. ничего не изменилось


Kaban   (2002-06-17 10:45:00) [10]

умнож число на 100, выдели целую часть и подели на 100


Наверх

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