Cтраница 4
Это требует, чтобы при разработке алгоритма всюду, где производится сравнение вещественных значений, использовался некоторый задаваемый программистом уровень точности. Игнорирование специфики машинной арифметики является распространенной студенческой ошибкой при разработке алгоритма. Например, проверку того, лежат ли три точки на одной прямой, студент программирует обычно следующим образом: в уравнение прямой, проходящей через две точки, он подставляет координаты третьей точки. Все точки лежат на одной прямой тогда и только тогда, когда в результате получается нуль. Однако из-за неточности машинной арифметики при выполнении такой проверки на ЭВМ нуль почти наверняка никогда не будет получен, даже если теоретически названное свойство выполнено. [46]