Python如何用变量P控制浮点数保留的小数位数?
Python浮点数固定精度补零输出解决方法
你当前代码的问题是round()函数只会保留计算后的有效小数位,不会自动在末尾补零凑够P位长度,需要使用Python格式化字符串的动态精度语法实现需求。
修改后的代码
a = int(input()) b = int(input()) P = int(input()) result = a / b # 匹配你测试用的输出格式 print(f'{a} / {b} = {result:.{P}f}.') # 如果需要匹配需求原文的"The result of a by b is X."格式,替换为下面这句即可 # print(f'The result of {a} by {b} is {result:.{P}f}.')
语法说明
:.{P}f是Python f-string的动态精度控制语法,作用是强制浮点数输出保留P位小数,不足位数自动用0补齐,同时会自动对超出P位的部分做四舍五入处理,无需额外调用round()函数。
测试验证
- 输入a=10、b=5、P=2,输出为
10 / 5 = 2.00.,符合预期 - 输入a=10、b=5、P=3,输出为
10 / 5 = 2.000.,匹配示例1要求 - 输入a=9、b=3、P=1,输出为
9 / 3 = 3.0.,匹配示例2要求
内容的提问来源于stack exchange,提问作者Thiago Calegário
相关产品推荐
相关产品推荐

