Форум: "Основная";
Поиск по всему сайту: 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.024 c
3-57298           Chak                  2002-02-19 00:09  2002.03.18  
Как лучше добавлять запись в таблицу MSSQL?


3-57324           DimaIv                2002-02-02 12:48  2002.03.18  
Как сделать чтоб при фильтрации с пом. проц. SetRage


14-57504          Феликс                2002-02-03 00:50  2002.03.18  
Пара простых вопросов по Перлу.


14-57501          HDD                   2002-02-02 17:25  2002.03.18  
Помогите пожалуйста!


4-57562           Vlad_NOJB             2002-01-20 10:27  2002.03.18  
Как определить HWND окна?