+ -
当前位置:首页 → 问答吧 → 关于用直接使用表达式实现浮点数A/B上取整的问题。

关于用直接使用表达式实现浮点数A/B上取整的问题。

时间:2011-07-27

来源:互联网

假如A,B均为整型数据,则实现A/B上取整可以用(A+B-1)/B实现;
如果A为double浮点数,B为整型数据呢。
如果A、B均为double浮点数呢。

作者: Galadriel   发布时间: 2011-07-27

C/C++取整函数ceil(),floor()
double floor(double x);

double ceil(double x);


使用floor函数。floor(x)返回的是小于或等于x的最大整数。
如: floor(10.5) == 10 floor(-10.5) == -11


使用ceil函数。ceil(x)返回的是大于x的最小整数。
如: ceil(10.5) == 11 ceil(-10.5) ==-10

   
floor()是向负无穷大舍入,floor(-10.5) == -11;
ceil()是向正无穷大舍入,ceil(-10.5) == -10

无论是整型还是浮点型,都用浮点型就OK了
或者这样(int)(A/B + 0.5);

作者: zhang20072844   发布时间: 2011-07-27

浮点算数,自动按照高级别“对齐”运算。
但楼主的意思,偶猜实际上与ceiling,floor函数有关。

作者: cnmhx   发布时间: 2011-07-27