好的 - 我几乎不好意思在这里张贴这个(如果有人投票结束我会删除),因为这似乎是一个基本问题.
这是在C++中舍入到数字的倍数的正确方法吗?
我知道还有其他与此相关的问题,但我特别感兴趣的是知道在C++中执行此操作的最佳方法是什么:
int roundUp(int numToRound, int multiple)
{
if(multiple == 0)
{
return numToRound;
}
int roundDown = ( (int) (numToRound) / multiple) * multiple;
int roundUp = roundDown + multiple;
int roundCalc = roundUp;
return (roundCalc);
}
Run Code Online (Sandbox Code Playgroud)
更新:对不起我可能没有明确意图.这里有些例子:
roundUp(7, 100)
//return 100
roundUp(117, 100)
//return 200
roundUp(477, 100)
//return 500
roundUp(1077, 100)
//return 1100
roundUp(52, 20)
//return 60
roundUp(74, 30)
//return 90
Run Code Online (Sandbox Code Playgroud)
编辑:感谢所有的回复.这是我的目的:
int roundUp(int numToRound, int multiple)
{
if(multiple == 0)
{
return numToRound;
} …Run Code Online (Sandbox Code Playgroud) 我有以下数据:
cell(1,1) = 2878.75
cell(1,2) = $31.10
cell(2,1) = $89,529.13
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用时round(cells(1,1).value*cells(1,2).value),2),结果不匹配cell(2,1).我认为它与舍入问题有关,但我只是想知道是否有可能round()采取正常行动.也就是说,为了value > 0.5,向上舍入.为了value < 0.5,向下舍入?