當我嘗試創建從a
到b
(如[1,1.1,1.2,1.3,...,2](a = 1,b = 2)這樣的增量列表時,則I開始有與特定代碼有問題,我想出了:創建增量列表
def Range(a,b,r):
lst1=[]
y=a
while y<b:
lst1.append(round(float(y+10**-r),r))
y+=10**-r
return lst1
print Range(1,2,3)
這裏,r
是我的增量(10**-r)
的功率對於r=1
或r=2
的代碼工作正常,並在結束[...,2,0]。但是對於r=3
或r=4
,它分別在[...,2.001]和[...,2.0001]結束。但是,對於r=5
和r=6
,它回到結束於2.是否有我的代碼錯誤或這是一種錯誤?
只需閱讀http://floating-point-gui.de/。 –
這是不同的。我在列表中得到了一個與列表邏輯相反的額外元素(例如,獲得2.001元素,迷失者必須採用y = 2.000,但其中的邏輯是y <2.000)。再加上我把數字加起來了。 –