floattostrf

Функция формирования строки заданного формата из переменной с плавающей запятой.

Синтаксис:

str = floattostrf(x, type, par1, par2);

Аргументы:

Имя Тип данных Описание
x double Входная переменная, число с плавающей запятой
type integer Формат формируемой строки
par1 integer Первый параметр формата формируемой строки
par2 integer Второй параметр формата формируемой строки

Описание:

floattostrf(x, type, par1, par2) – функция формирует строку заданного формата из переменной x типа «число с плавающей запятой». Переменная х должна быть типа double. Если количество цифр в формируемой строке меньше количества цифр исходного числа, число округляется. Переменная type определяет формат вывода:
  1. Формат автоматический (general). type = 0. Число преобразовывается в наиболее возможно короткую десятичную строку, используя фиксированный (fixed) или научный формат (scientific). Нули в конце числа удаляются. Десятичная точка ставится только в случае необходимости. Фиксированный формат применяется, когда в значении числа количество цифр, стоящих слева от десятичной точки, меньше либо равно par1 или, когда значение числа >= 0.00001. В противном случае, применяется научный формат, а параметр par2 определяет минимальное число цифр в экспоненте (0.. 4).
  2. Формат научный (scientific). type = 1. par1 – количество значащих цифр мантиссы, минимальное значение – 2 цифры; par2 – количество значащих цифр экспоненты, минимальное значение – 1 цифра. Число преобразуется в строку формата "-x.xxx…E+xxxx". Строка начинается со знака "-" (если число отрицательное). Десятичной точке всегда предшествует одна цифра. Параметр par1 определяет общее количество десятичных цифр, стоящих до символа экспоненты "E" (включая цифру слева от десятичного разделителя). За символом экспоненты следует знак плюс или минус и до 4 цифр, определяющих степень экспоненты. Минимальное число цифр в экспоненте указывается в параметре par1.
  3. Формат фиксированный (fixed). type = 2. par1 – общее количество значащих цифр, минимальное значение – 2 цифры; par2 – количество цифр после запятой. Значение преобразуется в строку вида "-ххх.ххх…". Если число отрицательное, то впереди строки будет поставлен знак "-". Десятичной точке всегда предшествует минимум одна цифра. Количество значащих цифр после десятичной точки (0…18) указывается в параметре par2. Если количество разрядов слева от разделителя превышает значение, указанное в параметре par1, то для форматирования будет использоваться научный формат (ffExponent).
  4. Формат финансовый (number). type = 3. par1 – общее количество значащих цифр, минимальное значение – 2 цифры; par2 – количество цифр после запятой. Значение преобразуется в строку вида "-x ххх.ххх…". Если число отрицательное, то впереди строки будет поставлен знак "-". Группы по 3 разряда отделяются друг от друга пробелом. Десятичной точке всегда предшествует минимум одна цифра. Количество значащих цифр после десятичной точки (0…18) указывается в параметре par2. Если количество разрядов слева от разделителя превышает значение, указанное в параметре par1, то для форматирования будет использоваться научный формат (ffExponent).
  5. Формат денежный (сurrency). type = 4. par1 – общее количество значащих цифр, минимальное значение – 2 цифры; par2 – количество цифр после запятой. Значение преобразуется в строку вида "-x ххх.ххх… ₽". Если число отрицательное, то впереди строки будет поставлен знак "-". Группы по 3 разряда отделяются друг от друга пробелом. После последней цифры, через пробел, ставится знак валюты. Десятичной точке всегда предшествует минимум одна цифра. Количество значащих цифр после десятичной точки (0…18) указывается в параметре par2. Если количество разрядов слева от разделителя превышает значение, указанное в параметре par1, то для форматирования будет использоваться научный формат (ffExponent).

Результат:

Имя Тип данных Описание
str string Сформированная строка

Пример:

var
x1:double = 3.14159,
x2:double = 31.4159,
x3:double = 1314.159;
//сформируем строку из переменной в формате general
s1 = floattostrf(x1, 0, 4, 0); // «3.142»          
s2 = floattostrf(x2, 0, 2, 0); // «31»             
s3 = floattostrf(x3, 0, 2, 0); // «1.3E3»          
//сформируем строку из переменной в формате scientific
s4 = floattostrf(x3, 1, 3, 2); // «1.31E+03»          
//сформируем строку из переменной в формате fixed     
s5 = floattostrf(x3, 2, 4, 3); // «1314.000»          
s6 = floattostrf(x3, 2, 6, 3); // «1314.160»          
s7 = floattostrf(x3, 2, 1, 3); // « 1.3E003»                                                                
//сформируем строку из переменной в формате number    
s8 = floattostrf(x3, 3, 4, 3); // «1 314.000»         
s9 = floattostrf(x3, 3, 6, 3); // «1 314.160»         
s10 = floattostrf(x3, 3, 1, 3); // «1.3E003»          
//сформируем строку из переменной в формате currency  
s11 = floattostrf(x3, 4, 4, 3); // «1 314.000 ₽»      
s12 = floattostrf(x3, 4, 6, 3); // «1 314.160 ₽»      
s13 = floattostrf(x3, 4, 1, 3); // «1.3E003»          

В результате переменная s1 будет содержать строку «3.142», переменная s2 будет содержать строку «31», переменная s3 будет содержать строку «1.3E3», переменная s4 будет содержать строку «1.31E+03», переменная s5 будет содержать строку «1314.000», переменная s6 будет содержать строку «1314.160», переменная s7 будет содержать строку «1.3E003», переменная s8 будет содержать строку «1 314.000», переменная s9 будет содержать строку «1 314.160», переменная s10 будет содержать строку «1.3E003», переменная s11 будет содержать строку «1 314.000 ₽», переменная s12 будет содержать строку «1 314.160 ₽», переменная s13 будет содержать строку «1.3Е003».

Дополнительные материалы

Нет.