向下四舍五入到五个c++的最近倍数

Round down to the nearest multiple of five c++

本文关键字:c++ 五个 最近 四舍五入      更新时间:2023-10-16

我对向下舍入有点问题。

我会把这个数字四舍五入到最接近的五的倍数。

这里有一些例子:

4 -> 0
67 -> 65
23 -> 20
44 -> 40 
59 -> 55

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

有什么方法可以做吗?

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

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

如果您有int类型的变量,您可以使用这样一个事实,即将它们与另一个int相乘将得到一个整数,因此如果您再次乘以该数字得到你想要的。

因此:

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

将输出55。

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

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