python - 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.
解决方案
该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}.')
推荐阅读
- python - python使用内部类作为静态类变量奇怪的行为
- android - 如何从 stateLessWidget 更新 StateFullWidget
- python - 90 天缺失数据的插值
- python - 通过列出它们的键来打印多个值
- javascript - 如何通过单击齿轮图标和身体外部的任何位置隐藏此设置框?
- python - 使用 Pandas 对来自特定列的某些唯一值执行中值、均值等操作
- cgo - 如何使用调用未定义的 c 函数的 Go 构建共享库?
- node.js - ConnectionError:连接已关闭。使用 SQL Server 时 ECONNCLOSED
- android - Flutter 中的多个 (3) 上下文抽屉
- oracle - Oracle 数据库,如何查看或更改 nchar 集