【问题标题】:python round numpy array with trailing 0 to a certain number of decimalspython round numpy 数组,尾随 0 到一定的小数位数
【发布时间】:2020-01-15 18:40:09
【问题描述】:

我有一个 np 数组 freq_vector 填充了浮点数。例如freq_vector[0][0]200.00000000000003

我想将其限制为 4 位小数,然后将其转换为字符串以供其他用途。

当我执行round(freq_vector[0][0], 4) 时,结果是200.0,而不是200.0000

我怎样才能得到200.0000

【问题讨论】:

  • 200.0 是四舍五入的正确结果。如果您使用诸如'{0:.4f}'.format(200.00000000000003) 之类的字符串格式化程序,您只会得到200.0000
  • 试试np.array2string(np.array(12.), precision=4, floatmode='fixed'),或与np.set_printoptions等效。

标签: python numpy rounding trailing


【解决方案1】:

在 Python 中,200.0000200.0 相同。两者都是具有相同值的浮点数。既然要转成字符串,可以使用format方法,如下:

"{:.4f}".format(freq_vector[0][0])

在这种情况下,不需要使用round() 函数。

在 Python 3 中,您可以使用更简单的“f-string”语法:

f"{freq_vector[0][0]:.4f}"

您可以在PEP 498 找到有关此功能的更多信息。

【讨论】:

    猜你喜欢
    • 2021-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    相关资源
    最近更新 更多