我有一个漂浮物。我想将它四舍五入到n的最接近的倍数,其中n是任何浮点数。我怎么能这样做?
在我的特定实例中,我需要我的浮点数为0.96f的倍数,但0.96f可能会发生变化。
例如,如果我有1.0f,我想得到0.96f。或者,如果我有1.75f,我想得到1.92f。我不需要考虑负数,尽管它会很好。
我已经检查过有关舍入的其他问题,但它们都是2的幂。(0.25,0.5,1,2等)
答案 0 :(得分:6)
将您的输入(n
)除以您要舍入的数字(x
),将其舍入,并将其与x
相乘,这就是您的结果!
double RoundToNearest(double n, double x) {
return round(n / x) * x;
}