Die Ungenauigkeiten bei der Wurzelberechnung sind ja okay, und sie erklären auch das Problem.
Aber ich denke, darum geht es hier gar nicht.

Meiner Meinung nach ist das ein Programmfehler. Und zwar ein Fehler in der "Benutzeroberfläche".
Wenn ein Ergebnis von 2,000000000000000329746 herauskommt, dann sollte das am besten auch so angezeigt werden. Und wenn es auf 2,0 abgeschnitten wird, was ja auch okay ist, dann muss das Programm aber nachher auch mit diesem abgeschnittenen Wert weiterrechnen, und nicht mit dem zuvor intern berechneten genaueren Wert.

Ich finde, ob der User den Wert 2,0 händisch eingibt, oder ob dieser Wert zuvor irgendwie berechnet wurde, darf keinen Unterschied machen. Wenn am Display als Ergebnis 2,0 steht, dann erwartet der Anwender, dass auch mit diesem Wert 2,0 weitergerechnet wird.