Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.18;
Скачать: [xml.tar.bz2];




Вниз

Как огруглить число...? 


KMM   (2002-03-01 12:48) [0]

Существует ли стандартная функция округления числа с заданной точностью? Т.е. как округлить например 6,786549... до третьего
(например) знака после запятой?
Заранее благодарю.



IronHawk   (2002-03-01 12:56) [1]

Есть разные типы округления !
Есть "обрезка", тоесть будет не 6,786549 а 6,786 !
Есть "аккуратная обрезка", тоесть будет не 6,786549, а урезаться в большую сторону ! (ну в этом случае 6,786549 ) будет тож 6,786 !
а так ващето проще :

CurrToStrF - это верняк ! Проверенно !



Виктор Щербаков   (2002-03-01 12:59) [2]

Умножь число на 10^(кол-во знаков после запятой).
Округли до целого (функция Round).
Раздели результат на 10^(кол-во знаков после запятой).



Фэ   (2002-03-01 13:06) [3]

to IronHawk
А не рано ли ты начал советовать ?
Тем более муть голубую ?

function Roundto(var val: Double; num: integer): double;
var
j: integer;
dd: double;
begin
dd:=1;
case num of
0 : dd:=1;
1 : dd:=10;
else
for j:=1 to num do
dd := dd* 10;
end;
result:=int((val * dd + 0.5) / dd;
end;

Только надо иметь в виду, что из-за конечности разрядной сетки может вылезти ошибка и рез-т м.б. не 3.5, а 3.49999999999999



KMM   (2002-03-01 13:10) [4]

Спасибо!



IronHawk   (2002-03-01 13:13) [5]


> Фэ © (01.03.02 13:06)
> to IronHawk
> А не рано ли ты начал советовать ?

Незнаю рано или нет, это моё дело, просто помочь хотелось !

> Тем более муть голубую ?

У "белых" людей эта муть работает !

> Только надо иметь в виду, что из-за конечности разрядной
> сетки может вылезти ошибка и рез-т м.б. не 3.5, а 3.49999999999999

Вот поэтому и надо CurrToStrF !!!

2Фэ ©
В чужой ветке, огрызания и наезды на других, это невежество !



KMM   (2002-03-01 13:28) [6]

Спасибо всем еще раз.
Я обычно пользуюсь FormatFloat, но она
возвращает (так же как и CarrToStrF) строку, которую потом приходится снова превращать в число. Вот и подумалось, может есть
какая-то стандартная функция чтоб сразу из числа в число.



IronHawk   (2002-03-01 13:46) [7]


> KMM

Ну если

> может есть
> какая-то стандартная функция чтоб сразу из числа в число.

То это случай Фэ ©




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.18;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.022 c
1-57380           РЛ                    2002-03-01 09:45  2002.03.18  
Запускаю в режиме отладки, и появляется CPU c какими-то контрольными точками, которые я не проставлял


1-57426           igorr                 2002-03-03 05:25  2002.03.18  
Пропорциональность при загрузке изображения, когда Stretch=True.


3-57315           AndrewK               2002-02-19 08:35  2002.03.18  
Как заставить программу подключаться к MS SQL Server через NT-вые логины?


1-57450           esprit                2002-03-04 03:36  2002.03.18  
работа с файлами


1-57350           Юрий Л                2002-03-04 13:15  2002.03.18  
Проблема с компонентами