将 Numpy Float 转换为 String 会导致多余的小数点

Converting Numpy Float to String results in redundant decimal points

我正在尝试将范围内的浮点数转换为 Python 内的字符串。当我尝试将 numpy 浮点数转换为字符串时,我得到一些冗余的 0,后跟一些浮点数的小数位随机数。例如 0.15 转换为字符串 returns 0.15000000000000002 而不是 0.15

感谢任何帮助。

代码

import numpy as np
x = np.arange(0.05, 0.5, .05)
print(x)
for y in x:
    print(str(y))

输出

#print(x)
[0.05 0.1  0.15 0.2  0.25 0.3  0.35 0.4  0.45]

#print(str(y))
0.05
0.1
0.15000000000000002
0.2
0.25
0.3
0.35000000000000003
0.4
0.45

您可以对结果进行四舍五入,例如:

import numpy as np
x = np.arange(0.05, 0.5, .05)
print(x)
for y in x:
    print(str(round(y, 2)))

语法:

轮(数字,数字)

  1. 数量:必填。要四舍五入的数字
  2. 位数:可选。四舍五入时使用的小数位数。默认为 0

More Info