А зачем избегать? Это же не ошибка, а совершенно стандартная особенность чисел с плавающей запятой в любом современном языке программирования и в любом компьютере: https://ru.wikipedia.org/wiki/%E2%88%920_(%D0%BF%D...
А вот вычисление x ошибочно: $x = (-$b - sqrt($d)) / (2 * $a);