向下舍入为5个c ++的最接近倍数

问题描述 投票:1回答:3

伙计们,我对四舍五入有一点问题。

我会将数字四舍五入到最接近的5的倍数。

这里有一些例子:

4-> 0

67-> 65

23-> 20

44-> 40

59-> 55

我尝试了不同的方法,但是我做不到。

有某种方法可以做到吗?

c++ rounding
3个回答
1
投票

假设您的数字以整数格式存储,可以对此使用整数除法:

int a = 44;
int r = a/5 * 5; //will round down to 40

0
投票

如果您具有类型为[[int的变量,则可以利用以下事实:用除号int将它们除以整数,因此,如果再次乘以该数字,则表示得到你想要的。

所以:

int a = 59; std::cout << a/5*5 << "\n";

将输出50。

如果值未存储为整数,则可以在执行除法之前将其强制转换:

float a = 59; std::cout << (int)a/5*5 << "\n";


-1
投票
有一种方法,整数除法:

int n{44}; int multiple_of_five = (n / 5) * 5;

© www.soinside.com 2019 - 2024. All rights reserved.