Перевод числа с плавающей точкой в десятичный ASCII вид проводится в три основных шага: определение величины числа, масштабирование его для представления в виде BCD и перевод данных типа BCD в десятичную символьную ASCII запись.
Определение величины результата требует нахождения такого значения числа X, при котором наше число было бы представимо в виде I x 10**(X), где 1.0 ├ I < 10.0. Масштабирование числа требует его умножения на коэффициент масштабирования 10**(S) так, чтобы результат был целым, не содержащим десятичных цифр больше, чем отведено для этого места в строке символов ASCII.
После масштабирования, округления и перевода в тип BCD число представляется в форме, удобной для перевода в десятичный ASCII вид любым программным обеспечением.
Реализация всех этих трех шагов требует предельного внимания к деталям. Для начала обратите внимание, что не каждая величина с плавающей точкой имеет числовое значение. Подпрограммой перевода могут быть встречены и такие величины как бесконечность, неопределенность или NaN. Поэтому эта подпрограмма должна уметь опознавать эти величины и однозначно определять их.
Также присутствуют особые случаи числовых значений. Ненормальные величины имеют числовое значение и должны быть отличимы функцией, так как они указывают на то, что была потеряна точность в процессе проведения предшествующих вычислений.
Определив, что число имеет числовое значение и нормализовано (при необходимости установка соответствующих флагов сигнализирует вызванной программе, что это ненормальное число), можно масштабировать величину в диапазоне типа BCD.