Redondeado lo dicho por ecfisa: los números tipo real, double, extended, etc son imprecisos y para compararlo lo mejor es acudir a las aproximaciones. En el caso de tu algoritmo yo haría lo siguiente, aunque no es exactamente lo más recomendado:
Código Delphi
[-]
...until abs(x1-b) <= 0,0001;
Espero te sirva.