【发布时间】:2015-07-17 05:43:48
【问题描述】:
#include<stdio.h>
#include<math.h>
int main()
{
float i = 2.5;
printf("%d, %f", floor(i), ceil(i));
return 0;
}
虽然我在 printf() 中为 ceil 使用了 %f 说明符,但它会打印 0.000000。为什么会这样?
【问题讨论】:
-
因为您使用 %d 作为第一个参数,因此调用了未定义的行为。
-
尝试使用“%lf”而不是“%f”,floor() 和 ceil() 返回双精度,而不是浮点数。
标签: c