Python中printf风格格式化未返回预期结果,求问题排查
问题出在格式化符的选择上!
嘿,我来帮你揪出问题所在~
你写的%.2d里,d是专门用来格式化整数的格式说明符,它会直接舍弃浮点数的小数部分,只保留整数部分,所以才会输出121而不是你想要的两位小数结果。
要实现保留两位小数的需求,你需要把格式符换成%.2f——这里的f是浮点数格式化符,它会帮你保留指定的小数位数(还会自动四舍五入哦)。
修正后的代码应该是这样:
x = 121.37890 print("The variable x has the value %.2f, which is surprising" % x)
执行这段代码后,就会输出:The variable x has the value 121.38, which is surprising
另外,如果你用的是Python 3.6及以上版本,更推荐用更简洁直观的f-string写法:
x = 121.37890 print(f"The variable x has the value {x:.2f}, which is surprising")
效果是一样的,代码可读性更高~
内容的提问来源于stack exchange,提问作者user8270077
相关产品推荐
相关产品推荐

