LINUX.ORG.RU

[непонимание]почемуже оно так?!

 


0

1

заинтересовала одна вещь, а именно: имеем код

float f=0;
    int i;
    for(i=0;i<100000;i++) f+=0.1;

почему же вместо ожидаемых 10000 получаю 9998.556640625?? компилил на армах, интелах и амд. в шиндошс и линуксе, результат один. что не так-то? из-за чего столь большая погрешность???

Перемещено hibou из talks


Ответ на: комментарий от buddhist

Даже питон без модуля decimal ошибается

def a():
	x=0
	for i in range(100000):
		x=x+0.1
	return (x)


from decimal import *
def b():
	x=Decimal('0')
	for i in range(100000):
		x=x+Decimal('0.1')
	return (x)

print (repr(a()))
print (repr(b()))

sergijoo
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.