深度理解 取整的概念

  • 关于取整的介绍
  • 向零取整
  • trunc()函数----向0取整
  • 向负无穷大取整
  • floor()函数
  • 向正无穷大取整
  • ceil()函数
  • 四舍五入取整
  • round()函数
  • 总结


关于取整的介绍

在数学中取整方法通常是“四舍五入”,但是在我们编程语言中的取整方法却大有不同。
 大部分学C语言的人可能都简单的认为取整仅仅是去掉后面的小数部分,其实不然。
 不同的编程语言默认的取整方式不同。
 这篇文章我们主要利用C语言来深度理解一下编程语言当中的各种取整方法。

向零取整

在C语言中,默认的取整方式是向0取整。这是大部分初学者都熟悉的取整方法。

android 取整与取余 取整程序_c语言

就是往逼近0的方向进行取整。

int a =2.9;
int b = -2.9;
printf("%d %d",a,b);//2 -2

trunc()函数----向0取整

这个trunc()函数虽然返回值是浮点数,但是它采用的取整方法 就是我们C语言默认的 向0取整

printf("%d",(int)trunc(2.9));//结果为2

向负无穷大取整

android 取整与取余 取整程序_android 取整与取余_02


向负无穷大取整,既往数值更小的方向进行取整。

floor()函数

floor() 字面意思是地板,放在这里就是更小的意思。
它的返回值也是浮点数。
来看代码:

printf("%lf\n",floor(-2.9));//结果是-3.000000
printf("%lf\n", floor(2.9));//结果是2.000000

向正无穷大取整

android 取整与取余 取整程序_四舍五入_03


向正无穷大取整,既往数值更大的方向进行取整。

ceil()函数

ceil(),字面意思天花板,放在这里就是更大的意思。
它的返回值也是浮点数。
来看代码:

printf("%lf\n",ceil(-2.9));//结果是-2.000000
printf("%lf\n", ceil(2.9));//结果是3.000000

四舍五入取整

round()函数

四舍五入取整,就是我们在数学上最常见的一种取整。
直接看代码:

printf("%lf\n",round(-2.4));//结果是-2.000000
printf("%lf\n", round(-2.5));//结果是-3.000000

总结

如果一个数是正数的话,那么它向0取整和向负无穷大反向取整,得到的结果是一样的,因为取整方向都是左边。
如果一个是负数的话,那么它向0取整和向正无穷大反向取整,得到的结果是一样的,因为取整方向都是右边。
不理解的小伙伴可以看看上面画的数轴方向然后随便结合一个数比对一下。
以上就是四种取整的方法,不同的取整方法最后得到的结果可能是相同的。

希望能给读者带来帮助!