Страница: 1 |
Страница: 1 |
Вопрос: Как округлить 550.4 = 600 ?
Добавлено: 08.05.05 20:08
Автор вопроса: someone | Web-сайт:
Сабж.
Я знаю, что при этом юзается Round, но не помню как (мне даже sne примерчик кидал)
Ответы
Всего ответов: 13
Номер ответа: 1
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #1
Добавлено: 08.05.05 20:21
msgbox round(550.4 / 100, 0) * 100
Номер ответа: 2
Автор ответа:
HOOLIGAN
Вопросов: 0
Ответов: 1066
Профиль | | #2
Добавлено: 08.05.05 20:24
Если нужно округдение к ближайшей сотне, то
CLng(550.4 / 100) * 100
Номер ответа: 3
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #3
Добавлено: 08.05.05 22:32
А так нельзя?
Помоему, очень даже можно.
Номер ответа: 4
Автор ответа:
someone
Вопросов: 215
Ответов: 1596
Web-сайт:
Профиль | | #4
Добавлено: 09.05.05 11:24
Всем спасибо
2Noviks
нет, так нельзя (
я пробовал
Номер ответа: 5
Автор ответа:
Страшный Сон
Вопросов: 46
Ответов: 848
Профиль | | #5
Добавлено: 10.05.05 20:12
Можно так:
int x;
float y;
y = 550.4;
x = int(y / 100.0 + 0.5);
Номер ответа: 6
Автор ответа:
Страшный Сон
Вопросов: 46
Ответов: 848
Профиль | | #6
Добавлено: 10.05.05 20:12
То есть так:
int x;
float y;
y = 550.4;
x = int(y / 100.0 + 0.5) * 100;
Номер ответа: 7
Автор ответа:
someone
Вопросов: 215
Ответов: 1596
Web-сайт:
Профиль | | #7
Добавлено: 11.05.05 16:59
согласен. спасибо.
Номер ответа: 8
Автор ответа:
Barsik
Разработчик Offline Client
ICQ: 343368641
Вопросов: 17
Ответов: 686
Web-сайт:
Профиль | | #8
Добавлено: 13.05.05 18:46
смотрите справку товарищи.
Функция Round служит для округления чисел до заданной точности(число значащих цифр в дробной части).
Функция Round(Number,2) эквивалентна функции Format(Number,"#.##"
Номер ответа: 9
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #9
Добавлено: 13.05.05 22:08
Кстати, хотите прикол?
550.5 окрудлить до сотых: будет 500
))
А чтоб было 600, надо 555 округлять...
P.S.
Я тогда ошибся:
не
а
Номер ответа: 10
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #10
Добавлено: 13.05.05 22:40
Да чё то вы ребята только простыми и короткими методами хвалитесь. вот один понавороченее, чтобы не чкучали:
Dim t As Long
Dim r As Long
Sub Main()
t = n \ 100
If n - t * 100 >= 50 Then
r = (t + 1) * 100
Else
r = t * 100
End If
MsgBox r
End Sub
Номер ответа: 11
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #11
Добавлено: 13.05.05 22:47
или вот так, покороче и для ещё более трудной читаемости кода :
Sub Main()
MsgBox ((n \ 100) - (n - (n \ 100) * 100 >= 50)) * 100
End Sub
Номер ответа: 12
Автор ответа:
Страшный Сон
Вопросов: 46
Ответов: 848
Профиль | | #12
Добавлено: 14.05.05 13:27
Как ты собираешься к переменной Double применять целочисленное деление? Тут все равно неявные преобразования будут.
Номер ответа: 13
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #13
Добавлено: 14.05.05 18:42
не знаю, всё нормально работает, без стандартных функций. а если кому то не нравитсяя целочисленное деление то:
а)главное не то, что делишь, а чему присваеваешь значение;
б)это не главное, можно было в аналог Trunc'a и цикл замутить раз уж мы разрабатываем кривое и медленное решение )