![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Allest |
|
|||
|
Unregistered |
ceil() - вверх к самому близкому целому числу 1.1 -> 2 и 1.7 -> 2
floor() - вниз к самому близкому целому числу 1.1 -> 1 и 1.7 -> 1 а мне надо, чтобы 1.1 -> 1 и 1.7 -> 2 подскажите |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 17 Всего: 110 |
не помню функции, но можно, например, так:
floor(x+0.5) -------------------- qqq |
|||
|
||||
| RAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 709 Регистрация: 14.3.2003 Где: Щёлково Моск.обл. Репутация: 5 Всего: 6 |
Есть RoundTo в VCL. А вообще, как maxim1000 предложил.
|
|||
|
||||
| Фима |
|
|||
|
Unregistered |
Можно вот так:
int Fix (double val) { char *temp = NULL; char buff[100] = {0}; temp = _gcvt(val, 1, buff); return atoi(temp); } |
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 8 Всего: 12 |
Только не 0.5, а 0.3 -------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| RAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 709 Регистрация: 14.3.2003 Где: Щёлково Моск.обл. Репутация: 5 Всего: 6 |
Чего? Ты прикалываешься или нет? Фима, радикально. Только тот результат, который ты хочешь получить, даст функция inline int Fix(double val) { return int(val + 0.5); } А твой пример, по-моему, не верен. Второй параметр - кол-во значащих символов. Если не выходит, то возвращает в формате E. Один символ - это реально только с числами от 0 до 10. + 0.5 даст ошибку только с отрицательными числами -0.5 -1.5 и т.п. Но на это можно закрыть глаза, так как и 0.5 + 0.5 иногда даёт 0.9999... |
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 8 Всего: 12 |
floor(1.6+0.5) до скольки округлит? до 2, а надо? до 1...
или я не понял, чего изначально надо было? -------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| RAN |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 709 Регистрация: 14.3.2003 Где: Щёлково Моск.обл. Репутация: 5 Всего: 6 |
Почему?
Это он пример привёл. Это не границы. |
||||
|
|||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 8 Всего: 12 |
1.6+0.5=2.1 ближайшее нижнее целое = 2. Или ты про почему надо 1? мне подумалось, что 1.1->1, 1.7->2 он так обозначил границы округления... -------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| Allest |
|
|||
|
Unregistered |
это я к примеру, не границы всё понятно, всем большое спасибо. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |