2 / 2 / 0
Регистрация: 06.12.2011
Сообщений: 33
|
|
1 | |
Не могу найти фунцию round в C++06.12.2011, 00:12. Показов 34183. Ответов 20
Метки нет (Все метки)
Здравствуйте, уважаемые программисты. Прочитал в справочнике, что для использования функции round в C++ надо подключить файл math.h. Подключил его, а там нет такой функции, только ceil и floor. И в MSDN ничего не написано. Что делать - как быть? Работаю в VC2008, проект win32. В программировании и среде разбираюсь слабо, спасибо заранее.
0
|
06.12.2011, 00:12 | |
Ответы с готовыми решениями:
20
Вызвать фунцию Разложить фунцию в ряд Фурье Правильно ли я реализовываю фунцию iconv? Работа с датой не знаю фунцию |
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
06.12.2011, 00:18 | 2 |
1
|
2 / 2 / 0
Регистрация: 06.12.2011
Сообщений: 33
|
|
06.12.2011, 00:27 [ТС] | 3 |
Спасибо, про эти функции мне известно А где же round - ее нет в списке. В справочнике написано, что она добавлена в версии языка С99. А у меня С++2008 - более поздняя версия. Выходит - свою функцию писать надо?
0
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
06.12.2011, 00:35 | 4 |
похоже, что так
с != с++. совместимость есть до определенного момента. с помощью modf не особо сложно будет самоделку написать.
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
||||||
06.12.2011, 00:49 | 5 | |||||
3
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
06.12.2011, 00:51 | 6 |
хитрое. не учли знак value.
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
06.12.2011, 00:55 | 7 |
DU, например?
0
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
06.12.2011, 01:04 | 8 |
-4.6 должно округлится до -5. так? ок.
floor(-4.6 + 0,5) == floor(-4.1) == -4. floor(-4.1 + 0,5) == floor(-3.6) == -3. а не -4 как ожидалось. Что-то я кажись наглючил. Точно наглючил. floor(value + 0.5); возаращает то, что надо.
0
|
2 / 2 / 0
Регистрация: 06.12.2011
Сообщений: 33
|
||||||
06.12.2011, 01:21 [ТС] | 9 | |||||
Спасибо, еще подскажите, пожалуйста, почему мне пишется ошибка "Error 1 error C3861: 'round': identifier not found" при вызове этой функции?
Я так написал(нужен округленный double):
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
06.12.2011, 01:22 | 10 |
больше кода напишите
где вызываете
0
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
06.12.2011, 01:23 | 11 |
наверно используете ф-ию до ее определения. весь код покажите.
0
|
2 / 2 / 0
Регистрация: 06.12.2011
Сообщений: 33
|
||||||
06.12.2011, 01:37 [ТС] | 12 | |||||
Пожалуйста:
0
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
06.12.2011, 01:43 | 13 |
Перед ф-ией Shift поместите объявление вашей ф-ии
double round(double double_value); или же сразу целиком
1
|
2 / 2 / 0
Регистрация: 06.12.2011
Сообщений: 33
|
|
06.12.2011, 02:01 [ТС] | 14 |
0
|
8 / 8 / 1
Регистрация: 23.09.2011
Сообщений: 45
|
|
05.03.2012, 18:38 | 15 |
Хоть си != си++, но в GCC почему-то функция round есть, код, содержащий round прекрасно компилируется и в Linux и во FreeBSD. Но тоже столкнулся с такой проблемой, когда решил этот код откомпилировать под Windows на Visual Studio.
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
05.03.2012, 18:49 | 16 |
mdt::Vladimir, У всех компиляторов есть нестандартные расширения
0
|
0 / 0 / 0
Регистрация: 02.10.2011
Сообщений: 4
|
|
03.06.2012, 17:16 | 17 |
Nут и правда не всё учтено. Например
round( -1.5) = floor( -1,5 + 0.5 ) = -1 . А должно быть -2 !!!
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
03.06.2012, 17:32 | 18 |
округляется до большего, а не до меньшего
0
|
0 / 0 / 0
Регистрация: 02.10.2011
Сообщений: 4
|
|
04.06.2012, 00:40 | 19 |
Округление к ближайшему целому (англ. rounding) — наиболее часто используемое округление. Число в десятичной системе округляют до N-ого знака в зависимости от N+1 знака: если N+1 знак < 5, то N-ый знак сохраняют, а N+1 и все последующие обнуляют; если N+1 знак ≥ 5, то N-ый знак увеличивают на единицу, а N+1 и все последующие обнуляют. Например: 11,9 → 12; −0,9 → −1; −1,1 → −1; 2,5 → 3. http://ru.wikipedia.org/wiki/Округление
0
|
Модератор
12460 / 7484 / 1754
Регистрация: 25.07.2009
Сообщений: 13,762
|
|
04.06.2012, 00:55 | 20 |
Ну тогда весь стандарт ANSI C 99 - одно большое нестандартное решение от gcc
Мелкомягкие поддержку С99 так и не удосужились сделать, вместо этого своих нелепых велосипедов насочиняли.
0
|
04.06.2012, 00:55 | |
04.06.2012, 00:55 | |
Помогаю со студенческими работами здесь
20
как сделать фунцию рекурсивной разложить фунцию f(t)=cost в ряд Фурье Как сделать фунцию рисующую объект? Как задать данную фунцию с циклами? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |