Да, есть простое правило.Если дробная часть не может быть представлена некоторым числом n над некоторой степенью 2, она не может быть точно представлена - она будет повторяться бесконечно.В противном случае оно будет точным до тех пор, пока представление соответствует количеству доступных битов.
Так, например, 0,75 работает, потому что это 3/4.Нет никакого способа заставить 0,2 работать, потому что это 1/5, и вы ничего не можете отрегулировать, чтобы оставить числителю степень 2.
Причина, по которой такое количество десятичных чисел не может быть точно представлено, состоит в томдесятичные числа имеют комбинацию 2 и 5 в знаменателе.Вы можете получить точное представление только в том случае, если вы можете упростить дробь, чтобы удалить все 5.
Чтобы привести другой пример, рассмотрим 0,625.Как часть это 625/1000, но это упрощает до 5/8.Упрощенная форма имеет степень 2 снизу, поэтому она будет точной.
Один интересный побочный эффект заключается в том, что все точно представимые десятичные дроби оканчиваются на «5».Если этого не произойдет, вы можете очень быстро сказать, что это не может быть точно.