Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.03.18;
Скачать: CL | DM;

Вниз

Как огруглить число...?   Найти похожие ветки 

 
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

Ну если

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

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



Страницы: 1 вся ветка

Текущий архив: 2002.03.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.01 c
1-57386
Tsatur Soft
2002-02-24 22:34
2002.03.18
Нужен совет!


1-57443
Nuce
2002-03-04 01:50
2002.03.18
PaintBox?


6-57484
Tatosha
2001-12-27 19:21
2002.03.18
Help with SMTP (NMSMTP)


7-57544
Soul
2001-12-06 15:35
2002.03.18
GDI


14-57516
Beer
2002-02-05 09:47
2002.03.18
Просмотр данных DBGrid без TDataSet