ton*_*497 8 c++ double approximation
我有一些麻烦解释清楚,但它很简单..
我在我的C++程序中有一个双重命名值,如果它是一个正值,我想要它,如果它是负值,我想要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;
}
Run Code Online (Sandbox Code Playgroud)
我写了一个简单的代码,但我想知道是否有一个更简单或/和方式来做它.
你可以使用std::trunc:
return std::trunc(value * precision) / precision;
Run Code Online (Sandbox Code Playgroud)