如何将浮点型输入按指定字符数打印?printf输出格式异常求助
解决浮点型按指定字符宽度打印的问题
你的问题出在格式说明符的错误组合上:%40s是用来输出字符串的格式符,它会直接把第二个参数"%.2f"当成普通字符串打印,完全忽略了第三个参数AMOUNT。
要实现“按指定字符数打印浮点型(保留2位小数)”,只需要把宽度和浮点格式合并到同一个格式说明符里:
printf("%40.2f", AMOUNT);
格式说明:
%40.2f中的40是总输出宽度:最终输出的内容(包含整数部分、小数点、小数位)会被填充至40个字符长度,默认右对齐,不足的部分用空格补在左侧。.2用于指定保留2位小数,系统会自动对浮点值进行四舍五入处理。
扩展示例:
如果需要左对齐输出,在宽度数值前添加-即可:
printf("%-40.2f", AMOUNT); // 左对齐,空格补在右侧
如果不需要限制小数位数,但要指定总输出宽度:
printf("%40f", AMOUNT); // 默认保留6位小数,总宽度40
内容的提问来源于stack exchange,提问作者Pierce Zachary Hokia
相关产品推荐
相关产品推荐

