Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.08.11;
Скачать: 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 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.015 c
9-33035
R2D2
2003-02-10 16:39
2003.08.11
GLScene - режимы фильтрации текстур


1-33091
Evg12
2003-07-26 19:44
2003.08.11
Таймер в микровекундах.


6-33258
ilya_k
2003-06-02 14:36
2003.08.11
Как запустиь ISAPI.dll сделанную в IntraWeb(Delphi7) HELP?


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


9-33039
Кен
2003-02-07 02:37
2003.08.11
GLScene Как сделать реальную воду ? Типа океан. Чтобы было правдо