簡體   English   中英

在C ++中逼近零方向的最佳方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM