Когда я пытаюсь создать инкрементный список от 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). Плюс я обошел цифры. –