首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C中的ceil函数

C中的ceil函数
EN

Stack Overflow用户
提问于 2020-01-04 06:37:04
回答 1查看 193关注 0票数 0
  • 我认为ceil()函数在写“

”时应该给2.000000而不是1.000000

代码语言:javascript
复制
int main() {

    printf( "%f", ceil(5/3) );

    return 0;
}

floor()函数按预期给出1.000000。我不明白为什么赛尔要给1.000000

  • 下面的片段打印0,我不知道为什么:

代码语言:javascript
复制
int main() {
    printf("%d", ceil(5.0/3));

    return 0;
}
EN

回答 1

Stack Overflow用户

发布于 2020-01-04 06:41:06

ceil的签名是double ceil(double x);

printf( "%f", ceil((double)5/3) );应该如您所期望的那样工作。5/3是整数除法。作为整数除法的结果,ceil函数接收1 (小数后的数字被丢弃),并且在那里做的事情很少。

/运算符的至少一个操作数转换为double将导致浮点除法,小数点后的数字将被保留。

您需要将一个小数传递给ceil,这样它才能做您想做的事情。

在下面的注释中,Chux提供了一种替代的方法。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59588517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档