[英]Best way to approximate in direction to zero in C++
我有一些麻煩解釋清楚,但它很簡單..
我在我的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;
}
我寫了一個簡單的代碼,但我想知道是否有更簡單或/和方式來做到這一點。
你可以使用std::trunc
:
return std::trunc(value * precision) / precision;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.