И почему она бесит каждого тестировщика Иногда бывает так, что программа внезапно выдаёт ошибку на ровном месте, хотя до этого она запускалась много раз и без ошибок. Тесты тоже ничего не находят, но ошибка всё равно иногда возникает. Потом снова всё работает правильно, а затем — снова та же ошибка. Такие ошибки называются плавающими, и они раздражают всех: и тестировщиков, и разработчиков, и пользователей. Рассказываем, что это за ошибки, откуда они берутся и что с ними делать. Что такое плавающая...
Числа с плавающей запятой представлены в компьютерном оборудовании как дроби с основанием 2 (двоичные). Например, десятичная дробь 0.125 имеет значение 1/10 + 2/100 + 5/1000, и точно так же двоичная дробь 0.001 имеет значение 0/2 + 0/4 + 1/8. Эти две дроби имеют одинаковые значения, единственная реальная разница в том, что первая записана в дробной системе с основанием 10, а вторая - с основанием 2. К сожалению, большинство десятичных дробей не могут быть представлены точно как двоичные дроби. Следствием...