Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.01.18;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.005 c
1-1206455265
XAOC
2008-03-25 17:27
2009.01.18
проблема при установке indy 10


2-1228736535
Alex_C
2008-12-08 14:42
2009.01.18
Перемещение по DBGrid при событии OnMouseMove


1-1206193766
TStas
2008-03-22 16:49
2009.01.18
Отправка сетке соодщения WM_MOUSEDOWN


2-1228662640
алгоритм
2008-12-07 18:10
2009.01.18
подстакажите алгоритм нахождения точки


1-1205853001
Ega23
2008-03-18 18:10
2009.01.18
Наследование фреймов - подводные камни





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский