如何将浮点数舍入到n的最接近的倍数?

时间:2016-10-05 14:19:30

标签: c# math floating-point rounding

我有一个漂浮物。我想将它四舍五入到n的最接近的倍数,其中n是任何浮点数。我怎么能这样做?

在我的特定实例中,我需要我的浮点数为0.96f的倍数,但0.96f可能会发生变化。

例如,如果我有1.0f,我想得到0.96f。或者,如果我有1.75f,我想得到1.92f。我不需要考虑负数,尽管它会很好。

我已经检查过有关舍入的其他问题,但它们都是2的幂。(0.25,0.5,1,2等)

1 个答案:

答案 0 :(得分:6)

将您的输入(n)除以您要舍入的数字(x),将其舍入,并将其与x相乘,这就是您的结果!

double RoundToNearest(double n, double x) {
    return round(n / x) * x;
}