mathlab之floor,ceil,round,int以及fix函数
建议自己动手敲敲,网上很多人自己都没搞清楚然后好多错的。毕竟自己亲眼看到结果才有说服力。
以下是我亲眼见到的结果。
1.double floor(double)函数
floor()函数是常用的取整函数,特点是向下取整,无论正负取完整数值是变小的,eg : floor(2.3) = 2,floor(-3.3) = -4;
floor()函数可用来判断一个数是否为整数。比如:判断一个数是否为完全平方数
int charge(int n){
double m;
m = sqrt(n);
if(floor(m+0.5) == m)
return 1;
return 0;
}
注意由于m为浮点数,要注意浮点数运算时产生的误差。比如某次运算中整数1变成了0.999999,那么floor(m)就会等于0.所以可以加上0.5,以避免浮点误差带来的错误。另外这样也是用floor函数实现了四舍五入。
2.(double)ceil(double)函数
与floor函数相对应,ceil函数是向上取整的。无论正负取完整数值变大了。比如:ceil(2.4) = 3,ceil(-3.3) = -3.
3.(double)round(double)函数
round函数是四舍五入函数,也就是和我们数学习惯一样,无论正负先对绝对值四舍五入然后加上符号。比如:round(2.4) = 2,
round(3.5) = 4,round(-2.4) = -2,round(-3.5) = -4.
4.(int)int(double)函数
int函数是靠零取整函数,即无论正负直接取其整数部分,取整后绝对值会变小。比如:int(2.3) = 2,int(-3.4) = -3,int(2.7) = 2,int(-3.7) = -3.
5.fix函数
fix函数并不是mathlab里的函数,至少我用codeblocks和Vc++,math.h里是找不到这个函数的。应该是matlab里面的。
好啦,时间也不早啦,电脑也没电了。学完函数晚安喽。