无法使用 Python 截断数字
Can't truncate a number with Python
我一直在寻找关于如何使用 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
但出现了类似的错误。我如何truncate/trim到小数点后两位?
首先,通过执行以下操作确保变量是 float 或 int:
a = int(a)
或浮动
b = float(b)
对于数组,
val = [float(i) for i in val]
从这里开始,有两个选择。
1
a = <yournumber>
print("{0:.3}".format(a))
这将四舍五入,因此 2.618 将 return 2.62.
2
a = <yournumber>
print("{0:.2f}".format(a))
当输入 2.618 时,它也会给你类似 2.62 的值。
我认为你的错误 Unknown format code for type str
意味着你在 row
中的值不是数字而是字符串。您应该先使用 float
转换它。
for row in reader:
rowvals = [float(x) for x in row]
print ....
您的列表中可能有字符串。只需在格式化之前将它们转换为浮点数:
for row in reader:
print("Time Stamp: %s - Temperature °C: %.2f - Humidity: %%: %.2f" % (row[0], float(row[1]), float(row[2])))
我一直在寻找关于如何使用 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
但出现了类似的错误。我如何truncate/trim到小数点后两位?
首先,通过执行以下操作确保变量是 float 或 int:
a = int(a)
或浮动
b = float(b)
对于数组,
val = [float(i) for i in val]
从这里开始,有两个选择。
1
a = <yournumber>
print("{0:.3}".format(a))
这将四舍五入,因此 2.618 将 return 2.62.
2
a = <yournumber>
print("{0:.2f}".format(a))
当输入 2.618 时,它也会给你类似 2.62 的值。
我认为你的错误 Unknown format code for type str
意味着你在 row
中的值不是数字而是字符串。您应该先使用 float
转换它。
for row in reader:
rowvals = [float(x) for x in row]
print ....
您的列表中可能有字符串。只需在格式化之前将它们转换为浮点数:
for row in reader:
print("Time Stamp: %s - Temperature °C: %.2f - Humidity: %%: %.2f" % (row[0], float(row[1]), float(row[2])))