如何使用f-string实现浮点数的右对齐与四舍五入格式化?
问题解决:f-string中同时实现小数四舍五入与右对齐
你的代码报错是因为格式化说明符的写法错误,>10 0.2f里的空格是多余的,导致语法解析失败。在f-string中可以同时组合多个格式化规则,只需要把对齐、宽度、小数精度按正确顺序写在一起即可。
正确写法说明
对于浮点数的格式化,正确的组合格式是:{变量名:>宽度.小数位数f}
>:表示右对齐宽度:指定输出内容占用的字符宽度(包含小数点和小数位).小数位数:指定保留的小数位数,自动实现四舍五入f:表示按浮点数格式输出
修正后的代码
nums = [ 12.3292, 14.98717, 5.8291, 3.0091, 99.99901 ] for i, num in enumerate(nums): print(f"{i=:03} {num:>10.2f} {num:>10.2f}")
运行结果
i=000 12.33 12.33 i=001 14.99 14.99 i=002 5.83 5.83 i=003 3.01 3.01 i=004 100.00 100.00
可以看到,浮点数先被四舍五入到两位小数,同时整体右对齐,占用10个字符宽度,完全符合需求。
内容的提问来源于stack exchange,提问作者smackenzie
相关产品推荐
相关产品推荐

