我有些难以清晰地表达,但它相当简单。
我的C++程序中有一个名为"double named value"的值,如果它是正值,我想将其向下取整;如果它是负值,则向上取整。精度由外部变量给出。
一个例子:
精度为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;
}
我写了一段简单的代码,但是我想知道是否有更简单或更好的方法来实现它。
0.265
没有有限的浮点表示,因此您不能在代码中依赖任何精确性。 - Walter