Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Округлить число (модуль в Access 97) / 5 сообщений из 5, страница 1 из 1
03.07.2003, 15:25
    #32198592
guest__
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округлить число (модуль в Access 97)
Имеющаяся функция Int отбрасывает все знаки после запятой то есть int(5.9)=5. Функция Round работает в AccessХР а вот в 97 такой функции нет. Как можно округлить число чтоб 5.9 округлилось в 6?
...
Рейтинг: 0 / 0
03.07.2003, 15:27
    #32198595
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округлить число (модуль в Access 97)
Int(x + 0.5)
...
Рейтинг: 0 / 0
03.07.2003, 15:29
    #32198604
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округлить число (модуль в Access 97)
2Саныч\r
\r
А пАчЕмУ + 0,50, а не 0,3? \r
\r
Guest - см. /topic/38108\r
там внутри ссылочка на болееразвернутое обсуждение
...
Рейтинг: 0 / 0
03.07.2003, 15:36
    #32198627
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округлить число (модуль в Access 97)
Виктор, привет. :^) Я не заметил, мне кажется, что мы еще не дообсуждали. Я помню, что у тебя альтернативная версия 0.49 (или 0.49999), и хорошо, что ты сюда пришел. По-моему, в данном случае очевидно, что 0.49 не годится.

Int(0.505 + 0.49) = Int(0.995) = 0
Int(0.505 + 0.5) = Int(1.005) = 1

Я в том топике неправильно привел пример. По твоему способу неверно считается не от 0.49 до 0.5, а от 0.5 до 0.51.
...
Рейтинг: 0 / 0
03.07.2003, 15:46
    #32198649
Predator
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Округлить число (модуль в Access 97)
Универсальна функция округления

Public Function RoundTwo(s As Variant) As Currency
'Округлят аргумент до двух знаков после запятой
' при возникновении ошибки возвращает НОЛЬ
Dim x As Long
On Error GoTo RoundTwoErr
x = Int(s * 100)
If s * 100 - x < 0.5 Then
RoundTwo = CCur(x / 100)
Else
RoundTwo = CCur((x + 1) / 100)
End If
Exit Function
RoundTwoErr: 'Метка обработчика ошибок
RoundTwo = 0
Err.Clear
End Function

Пользуйтесь
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Округлить число (модуль в Access 97) / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]