赞
踩
头文件: #include <cmath>
朝上取整。
ceil(-3.14) = -3;
ceil(4.56) = 5;
朝下取整。
floor(-3.14) = -4;
floor(4.56) = 4;
朝0取整。
fix(-3.14) = -3;
fix(4.56) = 4;
可理解为:
if x>0 then floor(x+0.5);
if x<0 then ceil(x-0.5);
round(-3.14) = -3;
round(4.56) = 5;
round(11.5) = 12;
round(-11.5) = -12;
C/C++中的整数除法运算符“/”本身就有取整功能,整数除法对正数的取整是舍去小数部分。
但是整数除法对负数的取整结果和使用的C编译器有关。
以VS2013编译器为例,其处理整数除法对于正负数均采用舍去小数部分(类似于fix函数)
cout << 7/2 ; // 3
cout << 8/2; // 4
cout << -7/2; // -3
cout << -8/2; // -4
上节已经说了整数除法是按照舍去法的,那么余数怎么计算呢?
很简单,被除数 - (除数 * 商)就可以得到了,而且余数的正负性与被除数的正负性相同。
举例如下:
被除数 | 除数 | 商数 | 余数 |
---|---|---|---|
11 | 2 | 5 | 1 |
-11 | 2 | -5 | -1 |
11 | -2 | -5 | 1 |
-11 | -2 | 5 | -1 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。