Вниз
Скачать: 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.012 c
11-33083
Bartov
2002-12-02 10:23
2003.08.11
Справочная система – для ВСЕХ!


1-33181
Maxi-mov
2003-07-27 00:06
2003.08.11
Как из моего приложения редакторовать ячейку Excel ?


14-33269
Timur
2003-07-25 19:44
2003.08.11
Файлы H2O или H20


8-33227
Lister
2003-04-16 16:26
2003.08.11
Анимированная форма


1-33180
tiam
2003-07-28 09:44
2003.08.11
проверить, что компьютер не используется




   Наверх