减少Python中的小数点

时间:2014-01-31 19:59:27

标签: python-2.7 rounding

我有一个数组array([0.79836512, 0.79700273, 0.82697546, 0.82016349, 0.79087192], dtype=float32)

我希望保留前两个小数点而不是圆形。 所以,我需要一个这样的数组,

array([0.79, 0.79, 0.82, 0.82, 0.79], dtype=float32)

是否可以使用python执行此操作?

由于

2 个答案:

答案 0 :(得分:0)

截断为两位小数的标准方法是截断x * 100并将其除以100,这适用于numpy数组:

>>> np.trunc(a * 100) / 100
array([ 0.79000002,  0.79000002,  0.81999999,  0.81999999,  0.79000002], dtype=float32)

不要被输出中的尾随非零数字拖延,这些只是浮点不精确的伪像:

>>> np.float32(.79)
0.79000002

答案 1 :(得分:0)

您可以编写一个函数,以后再使用它:

import numpy as np
x= np.random.random(5)
x=np.array(x, dtype=np.float16)
print(x)

formatting = lambda x: "%.2f" %x

x_2dp=[]

for i in x:
    x_2dp.append(formatting(i))
    print(x_2dp)

但是答案是一个字符串,您可以将其转换为浮点数。