Ciao Salvio
Non e’ questione di errori nel valore iniziale.
E’ un limite intrinseco dei numeri floating point usati dai computer.
Certi valori (decimali) non possono essere rappresentati esattamente (in binario).
Se vuoi prova questo e vedi cosa scrive.
e = 0.0
while e <= 0.100:
# print e
e += 0.001
print 'E = %.16f' % e
if e == 0.099: print "ok"
print '0.099 = %.16f' % 0.099