首页 > 解决方案 > python - 如何使用python变量限制十进制数?

问题描述

我有一个名为“P”的变量,我想限制浮点数的十进制数。输入由三行组成。前两行分别包含整数值“a”和“b”。第三行包含定义所需精度的整数 p。保证0<a,b,P≤100。我想显示消息:“a by b 的结果是 X。”,用除以 a / b 的值替换 X,给定 P 小数位。

前任:

input(a) = 10
input(b) = 5
input(p) = 3
expected result: "2.000"

前任:

input(a) = 9
input(b) = 3
input(p) = 1
expected result: "3.0"

我的代码:a = 10,b = 5,p = 2

a = float(input())
b = float(input())
P = int(input())
y = round(a / b, P)
print(f'{a} / {b} = {y}.')

output = 10 / 5 = 2.0.
expected output = 10 / 5 = 2.00.

标签: pythonpython-3.x

解决方案


round()函数完成了它应该做的事情。问题是你想如何表示数字。如果您总是需要两位小数,即使该数字的有效小数位数较少(例如,您想要1.50打印而不是1.5),那么您必须在打印时相应地格式化数字:

print(f'{a} / {b} = {y:.{P}f}.')

.{P}f是一个格式说明符,用于打印具有精确十进制数字的浮点数P,无论它可能有多少有效十进制数字。有关详细信息,请参阅有关格式字符串语法的文档。

事实上,如果您只需要打印这样的数字,您的代码可以简化以避免round()完全使用:

a = float(input())
b = float(input())
P = int(input())
print(f'{a} / {b} = {y:.{P}f}.')

推荐阅读