Функция DoubleToStr Назад В начало Вперед

Назначение

Преобразование числа в строку с учетом формата. Форматный перевод вещественных чисел в строку в основном используется для вывода результатов, связанных с деньгами. Никаких округлений по умолчанию не производится, не поместившиеся в формат цифры дробной части просто отсекаются.

Описание

function DoubleToStr (num : double, format : string) : string;

Параметры

num : double - число, которое необходимо преобразовать в строку.

format : string - формат преобразования, см. "Формат преобразования вещественных чисел в строку".

Примеры

Вывод знака числа:

DoubleToStr(55.55,'3666.88') = '+55.55'
DoubleToStr(-55.55,'3666.88') = '-55.55'
DoubleToStr(55.55,'[|-]3666.88') = '55.55'
DoubleToStr(-55.55,'[|-]3666.88') = '-55.55'

Текстовое представление целой части:

DoubleToStr(5.555,'4КГ 5') =
   'пять КГ пятьсот пятьдесят пять  тысячных'
DoubleToStr(55.55,'4') = 'пятьдесят пять'
   // по умолчанию не округляет, берет только целую часть числа
DoubleToStr(55.55,'\0p4') = 'пятьдесят шесть'
   // чтобы округлило до целых, необходимо использовать \0p
DoubleToStr(Round(55.55),'4') = 'пятьдесят шесть'
   // или подавать на вход уже округленное число

Текстовое представление дробной части:

DoubleToStr( 0.00, '4 целых 5') = 'ноль целых ноль десятых'
DoubleToStr(5.555,'4КГ 5') =
   'пять КГ пятьсот пятьдесят пять тысячных'
DoubleToStr(5.555,'\2p4КГ 5') = 'пять КГ пятьдесят шесть сотых'
   // для округления до сотых - надо явно прописать \2p
DoubleToStr(5.555,'\1p4КГ 5') = 'пять КГ шесть десятых'
   // для округления до десятых - надо явно прописать \1p

Необязательная (незначимая) цифра целой части:

DoubleToStr(5,'666') ='5'
DoubleToStr(55,'666') ='55'
DoubleToStr(555,'666') = '555'
DoubleToStr(5555,'666') = '***'
DoubleToStr(0.55,'666') = '0'

Обязательная (значимая) цифра целой части:

DoubleToStr(5,'777') = '005'
DoubleToStr(55,'777') = '055'
DoubleToStr(555,'777') = '555'
DoubleToStr(5555,'777') = '***'

Обязательная (значимая) цифра дробной части:

DoubleToStr(5.55,'77.88') = '05.55'
DoubleToStr(5.555,'77.88') = '05.55'
DoubleToStr(5.555,'\2p77.88') = '05.56'
   // для округления до N знаков следует воспользоваться \Np
DoubleToStr(5.5,'77.88') = '05.50'
DoubleToStr(5.599,'\2p77.88') = '05.60'

Необязательная (незначимая) цифра дробной части:

DoubleToStr(5.55,'77.99') = '05.55'
DoubleToStr(5.555,'77.99') = '05.55'
DoubleToStr(5.555,'\2p77.99') = '05.56'
DoubleToStr(5.5,'77.99') = '05.5'
DoubleToStr(5.599,'\2p77.99') = '05.6'

Если необходимо, чтобы в дробной части всегда выводилось не менее к примеру 2 знаков, поступаем следующим образом:

DoubleToStr(5.599,'7.8899') = '5.599'
DoubleToStr(5.59,'7.8899') = '5.59'
DoubleToStr(5.9,'7.8899') = '5.90'

Окруление:

DoubleToStr(55.555,'\2p66.99') = '55.56'
   // \2p - 2 знака после запятой
DoubleToStr(55.555,'\1p66.99') = '55.6'
   // \1p - 1 знак после запятой
DoubleToStr(55.555,'\0p66.99') = '55'
   // \0p - округления до целого
DoubleToStr(55.555,'\-1p66.99') = '60'
   // \-1p - округления до десятков

Мужской /женский род:

DoubleToStr(22.22,'\m4 РУБЛЯ \f5') =
   'двадцать два  РУБЛЯ двадцать две  сотых'