正文

C语言中“/”运算符是取整运算符吗?- 2005-09-13 16:33:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/home/4701.html

分享到:

C语言如何取整?

除法运算符"/"双目运算具有左结合性。参与运算量均为整型时, 结果也为整型,舍去小数。如果运算量中有一个是实型,则结果为双精度实型。

void main(){
printf("%d,%d\n",10/3,-10/3);
printf("%f,%f\n",10.0/3,-10.0/3);
}

  双目运算具有左结合性。参与运算量均为整型时, 结果也为整型,舍去小数。如果运算量中有一个是实型,则结果为双精度实型。

printf("%d,%d\n",10/3,-10/3);

printf("%f,%f\n",10.0/3,-10.0/3);

  本例中,10/3,-10/3的结果均为整型,小数全部舍去。而10.0/3和-10.0/3由于有实数参与运算,因此结果也为实型。

你还知道哪些C语言的取整方法呢?看看全文


C语言有以下几种取整方法:
    1、直接赋值给整数变量。如:
    int i = 2.5; 或 i = (int) 2.5;
    这种方法采用的是舍去小数部分,可以用于你的问题。
    2、C/C++中的整数除法运算符"/"本身就有取整功能(int / int),而下面介绍的取整函数返回值是double。整数除法对正数的取整是舍去小数部分,但是整数除法对负数的取整结果和使用的C编译器有关。
    3、使用floor函数。floor(x)返回的是x的整数部分。如:
    floor(2.5) = 2
    floor(-2.5) = -3
    4、使用ceil函数。ceil(x)返回的是不大于x的最小整数。如:
    ceil(2.5) = 2
    ceil(-2.5) = -2
    floor和ceil对于正数没有区别,但是对于负数结果不同。floor()是向负无穷大舍入,floor(-2.5) = -3;ceil()是向正无穷大舍入,ceil(-2.5) = -2。

阅读(13977) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册