四舍五入到最接近的五的倍数C++
Round down to the nearest multiple of five c++
四舍五入有点问题
我会将数字四舍五入到最接近的五的倍数。
这里有一些例子:
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";
四舍五入有点问题
我会将数字四舍五入到最接近的五的倍数。
这里有一些例子:
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";