运行结果,并给出解释

#include <stdio.h>
#include <math.h>
#define ROUND(x,m) ((int)((x)*pow(10,m)+0.5)/pow(10,m))
int main()
{	printf("%f,%f", ROUND(12.3456,1),ROUND(12.3456,2));
     return 0;
}


yuantongxin
浏览 1407回答 1
1回答

sheepbao

以12.3456为例 ,宏展开是 (int)(123.456)/10 ,因为强制运算符,优先级比算术运算符高,所以123.456先进行强制转化得到123,再除以10得到12.3 ,打印%f格式,得到12.300000
打开App,查看更多内容
随时随地看视频慕课网APP