有人可以请我解释一下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
?
答案 0 :(得分:1)
我很确定由于np.arange的实现方式,它始终是9.998999999988918(严格来说<=实际目标值)。而您的印刷品的不同之处在于
实施 str 的方式列表(点后四舍五入至三位数),
实际(完整)值9.998999999988918,
和十进制函数四舍五入到7位(从8位开始四舍五入)