我到处搜索,没有解决方案,我需要舍入到最接近的5个整数, 不知道如何制定这个,例如round(0.13)将返回5;这里是模式逻辑,其值为舍入后的第一个和预期结果;
0.12 => 0
0.99 => 0
1.01 => 0
4.99 => 5
5.45 => 5
7.00 => 5
8.00 => 10
9.10 => 10
14.34 => 15
17.4 => 15
17.5 => 20
37.6 => 40
答案 0 :(得分:5)
尝试
float x = roundf(x / 5) * 5;
或者,假设x >= 0
(以及 @JamesKanze 注明,x <= INT_MAX
)
int n = (int)(roundf(x / 5) * 5 + 0.5);
答案 1 :(得分:0)
尝试5 * floor ((n + 2.5) \ 5)
,其中\
表示整数除法。这显然不是代码,但翻译成您喜欢的任何语言应该是微不足道的。