#include <stdio.h>
int main()
{
double x = 5.16894;
printf("%f\n",(int)(x*1000+0.5)/(double)1000);
}
为啥最后把计算结果转换为了int类型但输出的值是5.169000呢,转换成int不是跟前面的格式控制%f不一致了吗
#include <stdio.h>
int main()
{
double x = 5.16894;
printf("%f\n",(int)(x*1000+0.5)/(double)1000);
}
为啥最后把计算结果转换为了int类型但输出的值是5.169000呢,转换成int不是跟前面的格式控制%f不一致了吗
强制类型转换优先级高,先转换,后做除法
除法的除数是double,返回浮点
严格来说,应该用 lf 不是 f