powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Округление до десятков или до определенного числа
4 сообщений из 4, страница 1 из 1
Округление до десятков или до определенного числа
    #38189101
kiv-1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть функция, но работает она несколько неточно, задача в следующем - округлить до десятков, т.е. есть 3861 + 40% = 5 405,4:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Public Function RoundX(numberToRound As Double, roundBase As Integer)
    RoundX = Round(numberToRound / roundBase + 0.5, 0) * roundBase
End Function

Private Sub ResultEvent()
ResultX = RoundX(5405.4, 10)
End Sub


Получили: 5410, тут все правильно.

Переходим к следующему числу: 8700+40%=12180, функция тут выдает 12190, что неверно, ведь верно 12180.
Сталкивался ли кто с универсальным решением данной задачи? Которое бы округляло до нужных десятков, сотен, тысяч.... всегда вверх. В случае с 8700 некоторое решение: вместо 0,5 подставлять 0,49999, но оно опять же, временное и в некоторых случаях при получении числа 5400.2, ставит 5400, что опять неверно, нужно 5410.
...
Рейтинг: 0 / 0
Округление до десятков или до определенного числа
    #38189143
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> kiv-1980,
> ... Которое бы округляло до нужных десятков, сотен, тысяч.... всегда вверх.
Код: vbnet
1.
2.
result = ( numberToRound \ roundBase ) * roundBase
if result mod roundBase > 0 then result = result + roundBase
...
Рейтинг: 0 / 0
Округление до десятков или до определенного числа
    #38189146
скукотиша
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Обшыбка. В условии не та величина

if >>>numberToRound<<< mod roundBase > 0 then result = result + roundBase
...
Рейтинг: 0 / 0
Округление до десятков или до определенного числа
    #38189167
kiv-1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Указанная функция работает верно, нашел повторный раунд, все поправилось вопрос снят.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Округление до десятков или до определенного числа
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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