Округления
Облицовка природный камень продажа мрамора природный материал..
Здравствуйте, уважаемые читатели.

До Access 2002 (или 2000) встроенной функции округления не было. Поэтому все пользовались самописными. Потом появилась функция Round(). Тут можно было вдохнуть с облегчением и избавится от собственной.
Как-то заказчик прислал мне скриншот с неправильными расчетами. Анализ кода показал, что функция Round() дала сбой и округляла следующим образом (проверял в окне отладки):
9.5 =10
8.5 = 8
7.5 = 8
6.5 = 6
5.5 = 6
4.5 = 4
3.5 = 4
2.5 = 2
1.5 = 2
0.5 = 0
Разбираться было лень. В результате заменил на собственное творение, т.к. это деньги:
Public Function CM_Okrugl(ByVal dbl As Double) As Long
' округляет число dbl до целого
Dim lng As Long
lng = Fix(dbl)
If (dbl - lng) < 0.5 Then
CM_Okrugl = lng
Else
CM_Okrugl = lng + 1
End If
End Function
До встречи!
(с) Скоков Сергей
Сбоя нет, вы просто используете разные правила округления.
round() округляет числа с дробной частью равной 0.5 до ближайшего четного или нуля, что статистически более верно, нежели округление в большую сторону, как у Вас.
drokos
4 Апр 09 at 21:53
А с финансовой стороны?
Я реализовал как в школе учили.
. Главное же не верно, а чтобы у клиента суммы сходились.
Сергей Скоков
6 Апр 09 at 15:09