无法使用 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])))