python - 如何始终如一地确定我的 round.random.uniform 有多少位数?
问题描述
这段代码:
import random
while True:
thing = str(round(random.uniform(1,3), 3))
print(thing)
不是始终如一地生成带 3 位小数的数字,有时给我只有 2 位小数的数字。
输出示例:
1.575
2.035
2.864
2.118
1.069
2.36
1.092
1.948
2.54
2.224
2.318
1.713
1.819
2.717
1.171
2.918
3.0
1.23
2.487
我能够解决这个问题,创建一个例程来检查我的号码的长度,然后我附加一个由另一个随机生成的整数组成的字符串。喜欢
if len(thing) < 5:
thing = thing + str(2)
但是,我想知道如何设置参数以始终生成具有固定长度的随机数。
提前致谢!
@Edit:感谢Harry和Peter,找到了解决方案。我通过以下方式控制号码的长度:
thing = round(random.uniform(1,3), 3)
hora = str(dt.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
pack = '{:.3f}'.format(thing) + ',' + hora
pack = str(pack)
解决方案
您一直在生成具有三位小数的数字,只是在某些情况下,这些小数位中的一个或多个是0
. 默认情况下print
,小数点后不显示尾随 0。例如,它可能会生成数字 2.360,但print
会将其修剪为2.36
. 如果您想始终以一定的小数位数显示数字,您可以使用格式字符串:
print('{:.3f}'.format(thing))
这将2.360
在我刚刚给出的示例中打印出来。
推荐阅读
- ios - 列表内的多行文本视图/具有动态单元格高度的 ForEach SWIFTUI
- c# - 在 C# 中迭代 Json
- r - 如何使用 R 在足球数据库中拆分字符串值
- python - 为什么一个数字,例如 2 % 一个大于零的空集是真的?
- node.js - 摩卡抱怨与木偶表演者超时
- node.js - swift JSONEncoder() 如何编码 swift NSDate/ 数据类型?
- excel - 向 excel 数组公式添加通配符函数以垂直返回多个值
- javascript - 如何合并两个 mongo 集合?
- c - 使用 sscanf 时检查空/空浮点值
- java - 如何在 java-fx 中禁用选定的按钮悬停