如何在C语言中将数值四舍五入保留一位小数?
解决double类型保留一位小数并四舍五入的问题
方法1:直接通过printf格式控制输出
不用修改原数值,调整printf的格式符就能实现需求。把原代码里的printf("%f", a);改成:
printf("%.1f", a);
- 输入
4.5时,输出4.5 - 输入
4.64时,输出4.6
这种方式会自动完成四舍五入,同时只保留一位小数输出。
方法2:用<math.h>中的round函数修改数值
<math.h>里的round()函数可以实现四舍五入到整数,通过缩放数值就能保留一位小数:
#include <math.h> // ... double rounded_a = round(a * 10) / 10; printf("%.1f", rounded_a);
原理是先把原数乘以10(将需要保留的一位小数转为整数部分),用round()四舍五入到整数后,再除以10还原数值。之后同样用%.1f格式输出,避免多余小数位。
注意:使用round()需要包含<math.h>头文件,部分编译器编译时可能需要链接数学库(比如GCC需加-lm参数)。
内容的提问来源于stack exchange,提问作者convexhull
相关产品推荐
相关产品推荐

