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

Вниз

Функция округления до данного знака.   Найти похожие ветки 

 
linx   (2008-12-04 11:28) [0]

Подскажите пожалуйста.


 
Ega23 ©   (2008-12-04 11:37) [1]

RoundTo + F1


 
Григорьев Антон ©   (2008-12-04 11:45) [2]

http://www.delphikingdom.com/asp/answer.asp?IDAnswer=66843


 
Труп Васи Доброго ©   (2008-12-04 12:16) [3]

> [1] Ega23 ©   (04.12.08 11:37)
> RoundTo + F1

Век живи - век учись! Один хрен - дураком помрёшь.
Даже не подозревал о существовании этой функции. Ещё ..надцать лет назад написал свою и до сих пор пользуюсь.
А эта RoundTo банковское округление делает, так что будь внимательнее при использовании. (это для
> [0] linx   (04.12.08 11:28)
)


 
stas ©   (2008-12-04 12:27) [4]

Труп Васи Доброго ©   (04.12.08 12:16) [3]
Банковское это как?


 
Григорьев Антон ©   (2008-12-04 12:29) [5]


> stas ©   (04.12.08 12:27) [4]
> Банковское это как?

Оно же - бухгалтерское, см. http://www.delphikingdom.com/asp/viewitem.asp?catalogID=1217


 
Ega23 ©   (2008-12-04 12:31) [6]


> Банковское это как?


Там как-то четные в одну сторону, нечетные - в другую.


 
stas ©   (2008-12-04 13:21) [7]

ясно спасибо.


 
Труп Васи Доброго ©   (2008-12-04 14:55) [8]

> [4] stas ©   (04.12.08 12:27)
> Труп Васи Доброго ©   (04.12.08 12:16) [3]
> Банковское это как?

Банковское это так, округляет х.5 не до х+1, как в математическом округлении, а до ближайшего чётного числа. т.е. 1.5 округлится до 2 и 2.5 округлится до 2, а не до 3.


 
Anatoly Podgoretsky ©   (2008-12-04 15:02) [9]

> Труп Васи Доброго  (04.12.2008 14:55:08)  [8]

Ну не называй ты это математическим, это школьное укругление, простое.


 
Loginov Dmitry ©   (2008-12-04 22:02) [10]

для мат. округления:


function RoundSum(const ASumma: Double; Digits: Byte): Double;
var
 MulValue: Integer;
 Value: Extended;
begin
 MulValue := Round(IntPower(10, Digits));

 Value := ASumma * MulValue;

 if Value < 0 then
   Value := System.Trunc(Value - 0.5000000001)
 else
   Value := System.Trunc(Value + 0.5000000001);

 Result := Value / MulValue;


 
Григорьев Антон ©   (2008-12-05 10:25) [11]


> Loginov Dmitry ©   (04.12.08 22:02) [10]
> для мат. округления:

Не надо таких доморощенных функций, их аналоги протестированы здесь: http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1218 - они дают ошибки

Возьмите лучше функию отсюда: http://cc.codegear.com/Item.aspx?id=21909 - те же самые тесты не выявили ни одной ошибки у этой функции.


 
Loginov Dmitry ©   (2008-12-05 21:36) [12]

> Не надо таких доморощенных функций, их аналоги протестированы
> здесь: http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1218
> - они дают ошибки


хм...
я в шоке! RoundSum при округлении до копейки дохнет на значениях >= 16384.0450. Видимо, довесок 0.0000000001 перестает учитываться. :(


> Возьмите лучше функию отсюда: http://cc.codegear.com/Item.aspx?
> id=21909 - те же самые тесты не выявили ни одной ошибки
> у этой функции.


Спасибо! Думаю, обязательно встроим данное решение в нашу систему учета.


 
Германн ©   (2008-12-06 00:43) [13]


> Григорьев Антон ©   (05.12.08 10:25) [11]

Где Вы, Антон были два года назад с таким советом?
:(


 
AndreyV ©   (2008-12-06 05:12) [14]

> [11] Григорьев Антон ©   (05.12.08 10:25)
> Возьмите лучше функию отсюда: http://cc.codegear.com/Item.aspx?
> id=21909 - те же самые тесты не выявили ни одной ошибки
> у этой функции.

Я эту функцию нашёл, когда заметил ошибки при расчете, благо было с чем сравнить. Интересно почему она так и не вошла в стандартные?



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

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

Наверх




Память: 0.5 MB
Время: 0.013 c
15-1226136730
sloosar
2008-11-08 12:32
2009.01.18
Скрытия IP адреса


15-1227219455
{RASkov}
2008-11-21 01:17
2009.01.18
Диспетчер устройств


15-1227090166
matt
2008-11-19 13:22
2009.01.18
Assertion failed в Delphi 2007


2-1228647187
aglar
2008-12-07 13:53
2009.01.18
Правильно ли составлен запрос SQL?


2-1228510663
Lamer6666
2008-12-05 23:57
2009.01.18
M2M приложение