У меня есть некоторые проблемы, объясняющие ясно, но это довольно просто ..
У меня есть двойное значение в моей программе на C ++, и я хочу использовать его для Floor, если это положительное значение, и для Ceil, если это отрицательное значение, точность задается внешней переменной.
Пример:
точность составляет 1000
значение составляет 0,2659, поэтому приблизительное значение составляет 0,265
значение равно -0,2659, поэтому приблизительное значение равно -0,265
Я написал простой код, но мне было интересно, есть ли более простой или / и способ сделать это.
Вот что у меня так далеко:
void NodeImpl::approximation(double& value, const double& precision)
{
if (value > 0.0)
{
value = std::floor(value * precision);
}
else
{
value = std::ceil(value * precision);
}
value /= precision;
}
Я написал простой код, но мне было интересно, есть ли более простой или / и способ сделать это.
Ты можешь использовать std::trunc
:
return std::trunc(value * precision) / precision;
Других решений пока нет …