4
问题是如何将给定值舍入到给定因子f的最接近的“几乎精确”倍数。例如:如何用浮点数凑整给定因子的最接近倍数?
如果f = 2.6,则每个“roundUp(x,2.6)”调用将从集{0,+/- 2.6,+/- 2 * 2.6,+/- 3 * 2.6,...}
通常,我的f的任一10的幂(其中,功率为正或负)或1/2所述10.
功率又如:F = 0.001,应取整至0.001的最接近整数倍,例如{0,+/- 0.001,+/- 2 * 0.001,+/- 3 * 0.001}。
更新:我希望roundUp(x,f)的结果是结果的“天花板”,也就是从大于或等于x的倍数集中的最小元素(如果这是正确的方法去说吧)。看到我的答案下面的一个不那么优雅的解决方案(这似乎适用于我可以通过它的所有情况下)。
我只需要一个体面的浮点数近似值(在Java中使用double)。任何建议非常感谢!
不起作用,因为我不相信它处理的情况下,其中x <1.0 :( – les2 2012-03-27 13:35:45
这就是我正在努力,但...我会后的解决方案,我现在这似乎是工作 – les2 2012-03-27 13:36:03
你投票给你帮助......谢谢! – les2 2012-03-27 13:37:29