Единственные ситуации, которые я могу придумать, где это будет правдой, это если a/b
должно быть между -1 и 1, но это не так, потому что a
и b
получены из расчетов, которые делают их очень чувствительными к ошибкам с плавающей запятой.
Например, если вы попытаетесь вычислить b = 2-2*cos(theta)
и a = theta*theta
для тета в радианах, около нуля, вы столкнетесь с проблемами, потому что вычисление b
включает в себя вычитание чисел, очень близкое к 1, даже если математически ответ очень близок к 1,0 для малых углов. (Если я выполню вычисление a / b для theta = 0.4e-7 с использованием движка Spidermonkey Javascript, я получу 1.029, даже если это действительно должно быть чертовски близко к 1.0)
280Z28 - это то, где вы хотите быть, однако, не зная больше о том, как получены a и b, и при каких условиях вы получаете нежелательные результаты, трудно сказать, как лучше всего обеспечить, чтобы вычисления давали значимые числа.