新手问 ceil() 函数的问题

我是小溪流 2013-04-24 11:56:51

#include <iostream>
#include<cmath>
using namespace std;
int main()
{
printf("%d\n",ceil(2.52));
return 0;
}



这 个结果为什么是0,而不3啊
...全文
248 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ForestDB 2013-04-25
  • 打赏
  • 举报
回复
printf中格式说明符要和参数类型一致。
老王爱上猫 2013-04-25
  • 打赏
  • 举报
回复
ceil计算的结果没有问题 是 %d导致的
自信男孩 2013-04-25
  • 打赏
  • 举报
回复

#include <iostream>
#include<cmath>
using namespace std;
int main()
{
    int rtval = ceil(2.52);
    printf("%d\n", rtval);
    return 0;
}
ceil();函数返回值为double类型,可以使用int强制截断整数部分。不过,最好使用double类型作为其返回值。
nirvana_newbie 2013-04-25
  • 打赏
  • 举报
回复
CEIL函数原型 double ceil(double x); 输出的时候就不能用%d了。应该用%f
#include <iostream>
#include<cmath>
using namespace std;
int main()
{
    printf("%.0f\n",ceil(2.52));
    return 0;
}
赵4老师 2013-04-25
  • 打赏
  • 举报
回复
double ceil( double x );
赵4老师 2013-04-25
  • 打赏
  • 举报
回复
printf里面的%和变量的一一对应关系 scanf里面的%和变量以及变量前加不加&的一一对应关系 是C代码中非常容易出错的地方,而且通常编译还不出错。 所以在编译源代码之前值得专门仔细检查一遍甚至多遍。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧