Функция 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') = 'двадцать два РУБЛЯ двадцать две сотых'