#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;
}
1 回答
已采纳

sheepbao
TA贡献2条经验 获得超0个赞
以12.3456为例 ,宏展开是 (int)(123.456)/10 ,因为强制运算符,优先级比算术运算符高,所以123.456先进行强制转化得到123,再除以10得到12.3 ,打印%f格式,得到12.300000
- 1 回答
- 1 关注
- 1406 浏览
添加回答
举报
0/150
提交
取消