Вниз
Скачать: CL | DM;

FormatCurr   Найти похожие ветки 

← →
Сорокин Семен   (2003-07-30 10:37) [0]

var
_a : currency;
...
_a := 5.325;
ShowMessage(FormatCurr("0.00", _a)); //результат 5.32
_a := 5.3251;
ShowMessage(FormatCurr("0.00", _a)); //результат 5.33
_a := 5.315;
ShowMessage(FormatCurr("0.00", _a)); //результат 5.32
Ф-я FormatFloat отрабатывает как надо.
Тесты ф-ии FormatCurr привели к тому что если 2-я цифра после запятой - четная, то округление (в случае следующей -последней 5-ки) идет в меньшую сторону, а если нечетная - тов большую. Может быть внутреннее представление чисел выглядит как 5.32499999999999 и 5.3150000000000 соответственно, хотя у currency вроде только 4 значащих цифры, тогда не ясно при чем здесь четность предыдущей цифры?
Это бага или фича?
Типа каждая четная копейка в пользу считающего :))))
У кого есть какие соображения?


← →
Anatoly Podgoretsky ©   (2003-07-30 10:41) [1]

А каждая нечетная в пользу плательщика, что в сумме дает плюс на мину.
Это наиболее часто используемое округление, поскольку дает меньшую ошибку на массиве чисел.
Вариаранты 5.32499999999999 или 5.32500000000001 сюда не относятся, только 5,325000000000000


← →
BillyJeans ©   (2003-07-30 10:53) [2]

Используй SimpleRoundTo, в D7 она точно имеется..



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.009 c
14-33371
bug008
2003-07-21 23:29
2003.08.11
Печать таблицы


3-33062
Vovchik_A
2003-07-18 15:52
2003.08.11
no permission...


14-33298
VEG
2003-07-17 13:40
2003.08.11
Говорили, что W98 официально похоронят в конце июня...


3-33068
hair
2003-07-18 16:04
2003.08.11
FB1.0.3 и IB60 рекурсия в триггере


4-33405
VShkoda_Shk
2003-06-11 12:53
2003.08.11
сообщение TEDIT




   Наверх