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

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

Функция округления до данного знака. [D7, WinXP]


linx ©   (2008-12-04 11:28:00) 

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


AndreyV   (2008-12-06 05:12:00) [1]

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

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


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


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

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


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

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


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


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


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


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


> 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-04 22:02:00) [5]

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


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;


Anatoly Podgoretsky   (2008-12-04 15:02:00) [6]

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

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


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

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

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


stas   (2008-12-04 13:21:00) [8]

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


Ega23   (2008-12-04 12:31:00) [9]


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


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


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


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

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


stas   (2008-12-04 12:27:00) [11]

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


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

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

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


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

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


Ega23   (2008-12-04 11:37:00) [14]

RoundTo + F1


Наверх

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