Вещественное число, в общем случае содержащее целую и дробную часть, всегда можно представить в виде суммы целого числа и правильной дроби. Так как в прошлом параграфе неувязка записи натуральных чисел в разных системах счисления уже была решена, можно ограничить рассмотрение только методами перевода правильных дробей. Введем последующие обозначения: правильную дробь в начальной системе счисления р будем записывать в виде 0, Yр, дробь в системе q — 0, Yq, а преобразование — в виде 0, Yp → 0, Yq. Последовательность рассуждений очень припоминает проведенную ранее для натуральных чисел. А именно, это касается советы производить преобразование через промежный переход к 10-ной системе, чтоб избежать необходимости создавать вычисления в «непривычных» системах счисления, т.е. 0, Yp → 0,Y10 → 0,Yq. Это, в свою очередь, разбивает задачку на две составляющие: преобразование 0, Yр → 0, Y10 и 0, Y10 → 0, Yq, каждое из которых может рассматриваться независимо.
Методы перевода 0,Y10 → 0,Yq выводится методом последующих рассуждений. Если основание системы счисления q, обычная дробь содержит n цифр и bk — числа дроби (1 ≤ k ≤ п, 0 ≤ bk ≤ q —1), то она может быть представлена в виде суммы:
Часть дроби от разряда i до ее конца обозначим εi и примем εn = bn/q (разумеется, ε1 = О, Yq); тогда в (4.5) просто усматривается рекуррентное соотношение:
Если вновь взять в долг в PASCAL’e обозначение функции — сейчас trunc, производящая округление целого вещественного числа методом отбрасывания его дробной части, то следствием (4.6) будут соотношения, дозволяющие отыскивать числа новейшей дроби:
Соотношения (4.7) задают метод преобразования 0, Y10 → 0, Yq:
- помножить начальную дробь в 10-ной системе счисления на q, выделить целую часть — она будет первой цифрой новейшей дроби; откинуть целую часть;
- для оставшейся дробной части операцию умножения с выделением целой и дробных частей повторять, пока в дробной части не окажется 0 либо не будет достигнута предпочитаемая точность конечного числа (exact); появляющиеся при всем этом целые будут цифрами новейшей дроби;
- записать дробь в виде последовательности цифр после ноля с разделителем в порядке их возникновения в п. (1) и (2).
Блок-схема метода представлена на рис.4.2. Цикл перевода завершается или в этом случае, когда окажется εi+1 = 0, или последовательность действий повторится наперед данное число раз (значение константы ех), которое совпадает с количеством означающих цифр в дробной части.