Python numpy数组索引四舍五入舍入错误

时间:2018-11-27 23:42:15

标签: python numpy rounding

有人可以请我解释一下numpy中数组的不同舍入错误吗?已经是第4位有效数字了?

dt = 0.001
t = np.arange(-10,10,dt)

print(t)
print(t[-1])
print(t[-1:])
print(t[-1:][0])
print("%.7f" %t[-1])

>> [-10.     -9.999  -9.998 ...   9.997   9.998   9.999]
>> 9.998999999988918
>> [9.999]
>> 9.998999999988918
>> 9.9990000

特别是:为什么t[-1]不是0.999

1 个答案:

答案 0 :(得分:1)

我很确定由于np.arange的实现方式,它始终是9.998999999988918(严格来说<=实际目标值)。而您的印刷品的不同之处在于

实施 str 的方式
  • 列表(点后四舍五入至三位数),

  • 实际(完整)值9.998999999988918,

  • 和十进制函数四舍五入到7位(从8位开始四舍五入)