Убедитесь, что вы используете
#include <cmath>
Используйте префикс std::
при использовании функций из пространства имен std
.
roundedval = std::floor(value* std::pow(10, digits) + 0.5) / std::pow(10, digits);
Если в IDE по-прежнему не удается найти функции, игнорируйте IDE. Пока ваш код компилируется. строит. и работает успешно, проблемы IDE можно игнорировать.
Предложение по незначительному улучшению кода
У вас есть два вызова std::pow(10, digits)
. Его можно уменьшить до единицы.
double p = std::pow(10, digits);
roundedval = std::floor(value*p + 0.5)/p;
Дальнейшим улучшением было бы вообще не использовать переменную roundedval
. Функция может быть:
double round_off(double value, double digits)
{
double p = std::pow(10, digits);
return std::floor(value*p + 0.5)/p;
}
Следующим улучшением будет использование int
в качестве типа digits
вместо double
.
double round_off(double value, int digits)
{
double p = std::pow(10, digits);
return std::floor(value*p + 0.5)/p;
}