我一直在寻找有关如何使用Python 3截断数字的多个看似错误的建议。我需要打印2个数字,小数点后两位。我的代码不起作用,Python抛出:Unknown format code for type 'str'
for row in reader:
print("Time Stamp: %s - Temperature °C: %s - Humidity: %%: %s" % (row[0], "{:.2f}".format(row[1]), "{:.2f}".format(row[2])))
我尝试将%s
更改为%f
,但类似的错误。如何截断/修剪为2位小数?
答案 0 :(得分:3)
我认为您的错误Unknown format code for type str
表示row
中的值不是数字而是字符串。您应该首先使用float
进行转换。
for row in reader:
rowvals = [float(x) for x in row]
print ....
答案 1 :(得分:2)
您的列表中可能包含字符串。在格式化之前,只需将它们转换为浮动:
for row in reader:
print("Time Stamp: %s - Temperature °C: %.2f - Humidity: %%: %.2f" % (row[0], float(row[1]), float(row[2])))
答案 2 :(得分:1)
首先,通过执行以下操作确保变量是float或int:
a = int(a)
或浮动
b = float(b)
对于数组,
val = [float(i) for i in val]
从这里开始,有两种选择。
a = <yournumber>
print("{0:.3}".format(a))
这将是圆的,因此2.618将返回2.62。
a = <yournumber>
print("{0:.2f}".format(a))
当放入2.618时,只会给你2.62这样的东西。