Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何四舍五入到最近的第四位_C++ - Fatal编程技术网

C++ 如何四舍五入到最近的第四位

C++ 如何四舍五入到最近的第四位,c++,C++,我正在寻找一种方法,将一个数字四舍五入到最接近的数字,该数字可以被4除而无余数使用以下宏: #define ALIGN4(len) (((len) + 3) & ~3) // round up to 4 items 下面是一些伪代码。也许不是最有效的方法,但是 if num mod 4 == 0 then you are good if num mod 4 == 1 then subtract 1 if num mod 4 == 2 then you decide (subtract

我正在寻找一种方法,将一个数字四舍五入到最接近的数字,该数字可以被4除而无余数

使用以下宏:

#define ALIGN4(len) (((len) + 3) & ~3) // round up to 4 items 

下面是一些伪代码。也许不是最有效的方法,但是

if num mod 4 == 0 then you are good
if num mod 4 == 1 then subtract 1
if num mod 4 == 2 then you decide (subtract/add 2)
if num mod 4 == 3 then add 1

试一试,发布你的代码,我们会帮助你工作。看起来你的问题在这里回答:这种方式需要做一些具体的事情吗?<代码> 2 < /C> >对宏的投票,特别是C++代码。他还使用低级运算符而不是明确的算术选项。他正在寻找最接近的数字,而不是更大的数字one@Benjamin林德利的答案似乎也是你想要的。他可能用的是浮点数,很可能是。这就是我编写伪代码的原因。对于不同的假定数据类型,有不同的方法来检查是否相等。不过,很高兴指出这一点。
if num mod 4 == 0 then you are good
if num mod 4 == 1 then subtract 1
if num mod 4 == 2 then you decide (subtract/add 2)
if num mod 4 == 3 then add 1