Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 149, средняя оценка - 4.81
vb_lord
2 / 2 / 0
Регистрация: 06.12.2011
Сообщений: 33
#1

Не могу найти фунцию round в C++ - C++

06.12.2011, 00:12. Просмотров 20555. Ответов 20
Метки нет (Все метки)

Здравствуйте, уважаемые программисты. Прочитал в справочнике, что для использования функции round в C++ надо подключить файл math.h. Подключил его, а там нет такой функции, только ceil и floor. И в MSDN ничего не написано. Что делать - как быть? Работаю в VC2008, проект win32. В программировании и среде разбираюсь слабо, спасибо заранее.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2011, 00:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не могу найти фунцию round в C++ (C++):

Работа с матрицей. Написать фунцию которая заполняет заштрихованную область матрицы нулями - C++
Задали квадратную матрицу, все элементы которой равны единице. написать фунцию void func (int** arr, int n) которая заполняет...

Round Robin - C++
Эта программа имитирует ли работу процесса по алгоритму круговое планирование? #include <iostream.h> #include <stdlib.h> #include...

Ошибка в компиляторе round myround - C++
Сейчас сидел писал код и в компиляторе мне выбило ошибку на вот этом моменте: return round(r * 100.0) / 100.0; пытался переименовать...

компилятор находит неоднозначность при вызове round(i) - C++
Доброго времени суток! Подскажите, компилятор находит неодназначтность в строке 26 *вызов функции round(i)* ...

Кроме Round и Floor еще есть что? - C++
Добрый вечер! Есть в с++ еще что-нибудь для округления при вычислениях (не выводе) кроме вышеуказанных. ______(x,i) - где x - вещ....

Функция round(), округление числа до 4-х знаков после запятой - C++
Вот наткнулся на проблемку как округлить число до 4 знаков после запятой? Подскажите что делать?

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
DU
1483 / 1059 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
06.12.2011, 00:18 #2
http://www.cplusplus.com/reference/c...y/cmath/floor/
http://www.cplusplus.com/reference/clibrary/cmath/ceil/
vb_lord
2 / 2 / 0
Регистрация: 06.12.2011
Сообщений: 33
06.12.2011, 00:27  [ТС] #3
Спасибо, про эти функции мне известно А где же round - ее нет в списке. В справочнике написано, что она добавлена в версии языка С99. А у меня С++2008 - более поздняя версия. Выходит - свою функцию писать надо?
DU
1483 / 1059 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
06.12.2011, 00:35 #4
похоже, что так
с != с++. совместимость есть до определенного момента. с помощью modf не особо сложно будет самоделку написать.
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
06.12.2011, 00:49 #5
C++
1
2
3
4
int round (double value)
{
   return (int) floor(value + 0.5);
}
дело нехитрое
DU
1483 / 1059 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
06.12.2011, 00:51 #6
хитрое. не учли знак value.
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
06.12.2011, 00:55 #7
DU, например?
DU
1483 / 1059 / 45
Регистрация: 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); возаращает то, что надо.
vb_lord
2 / 2 / 0
Регистрация: 06.12.2011
Сообщений: 33
06.12.2011, 01:21  [ТС] #9
Цитата Сообщение от alex_x_x Посмотреть сообщение
C++
1
2
3
4
int round (double value)
{
   return (int) floor(value + 0.5);
}
дело нехитрое
Спасибо, еще подскажите, пожалуйста, почему мне пишется ошибка "Error 1 error C3861: 'round': identifier not found" при вызове этой функции?

Я так написал(нужен округленный double):

C++
1
2
3
4
5
6
// начало функция округления
double round(double double_value)
{
   return floor(double_value+0.5);
}
// конец функция округления
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
06.12.2011, 01:22 #10
больше кода напишите
где вызываете
DU
1483 / 1059 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
06.12.2011, 01:23 #11
наверно используете ф-ию до ее определения. весь код покажите.
vb_lord
2 / 2 / 0
Регистрация: 06.12.2011
Сообщений: 33
06.12.2011, 01:37  [ТС] #12
Цитата Сообщение от alex_x_x Посмотреть сообщение
больше кода напишите
где вызываете
Пожалуйста:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// shift.cpp : Defines the exported functions for the DLL application.
#include "stdafx.h"
#include "math.h"
#define DLL extern "C" __declspec(dllexport)
// начало главной функции
DLL int __stdcall Shift(double * src, double * dest, int nPoints, int nShift)
{
    for(int i = 0; i < nPoints; i++)
    {
        dest[i]=round(src[i]);
    }
    return 0;
}
// конец главной функции----
//++++++++++++++++++++++++++
// начало функция округления
double round(double double_value)
{
    return floor(double_value+0.5);
}
// конец функция округления
//+++++++++++++++++++++++++
DU
1483 / 1059 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
06.12.2011, 01:43 #13
Перед ф-ией Shift поместите объявление вашей ф-ии

double round(double double_value);

или же сразу целиком
vb_lord
2 / 2 / 0
Регистрация: 06.12.2011
Сообщений: 33
06.12.2011, 02:01  [ТС] #14
Цитата Сообщение от DU Посмотреть сообщение
Перед ф-ией Shift поместите объявление вашей ф-ии

double round(double double_value);

или же сразу целиком
Спасибо, мир не без добрых людей
mdt::Vladimir
8 / 8 / 0
Регистрация: 23.09.2011
Сообщений: 32
05.03.2012, 18:38 #15
Хоть си != си++, но в GCC почему-то функция round есть, код, содержащий round прекрасно компилируется и в Linux и во FreeBSD. Но тоже столкнулся с такой проблемой, когда решил этот код откомпилировать под Windows на Visual Studio.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.03.2012, 18:38
Привет! Вот еще темы с ответами:

Алгоритм планирования Round Robin с квантом времени (переделать программу) - C++
Если кто знаком с этим - подскажите, будьте любезны!!)) Друзья, есть код программы, который представлен ниже. Реализован в Visual Studio...

Работа с датой не знаю фунцию - PHP
Стоит задача заменить месяцы на символы в дате наподобие 2017-04-26 11:45:04 хочу использовать вот так$a.' '.$monthsList-1].' '.$a.' года';...

как сделать фунцию рекурсивной - JavaScript
Вот я тут написала код, который создает узел в дереве. Теперь вот хочу, чтоб при нажатии на button Add Sub Item, вызывалась тот же самых...

Правильно ли я реализовываю фунцию iconv? - PHP
Всем привет! Скажите пожалуйста правильно ли я реализовываю фунцию iconv? Ситуация следующая все страницы сайта в кодировке утф8, но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
05.03.2012, 18:38
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru