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

3
我有一个浮点数。我想将其四舍五入为任何浮点数n的最接近倍数。如何实现呢?
在我的特定情况下,我需要我的浮点数是0.96f的倍数,但是0.96f可能会改变。
例如,如果我有1.0f,则希望得到0.96f。或者如果我有1.75f,则希望得到1.92f。我不需要考虑负数,但如果能这样做就更好了。
我已经查阅了其他关于四舍五入的问题,但它们都是2的幂。(0.25, 0.5, 1, 2等)

你能提供一些例子,以便我们更清楚你的要求吗? - user1666620
3
通常使用ROUND(x/n)*n - D Stanley
我标记了一个在Java中的重复内容,但前提是相同的。另请注意,您可以使用适当的各种舍入选项(AwayFromZeroToEven)。 - D Stanley
对于 float 类型,您只需要进行类型转换即可。https://dev59.com/CHE85IYBdhLWcg3wl0nF#47176199 - Xpleria
1个回答

8

将输入(n)除以你要舍入的数(x),四舍五入后,乘以x,这就是你的结果!

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接