Число в строку в поле формулы
-
22-08-2019 - |
Вопрос
Я использую поле формулы для объединения двух десятичных значений, разделенных тире.Однако я хочу, чтобы результат обрезал все ненужные конечные нули и десятичные точки для обоих значений.
Например, я хочу, чтобы значения 10 и 8,5 были «10–8,5».Сейчас показывает "10.00 - 8.50".
Формула, которую я использую, CSTR({field1}) + " - " + CSTR({field2}).
Решение
Я считаю, что это то, что вы ищете:
Преобразование десятичных чисел в текст, показывающий только ненулевые десятичные дроби
Особенно эта строка может быть полезна:
StringVar text := Totext ( {Your.NumberField} , 6 , "" ) ;
Первый параметр — это десятичная дробь, которую нужно преобразовать, второй параметр — количество десятичных знаков, а третий параметр — разделитель тысяч/миллионов и т. д.
Другие советы
CSTR({number_field}, 0, '')
Второй заполнитель предназначен для десятичных дробей.
Последний заполнитель предназначен для разделителя тысяч.
я написал для этого простую функцию:
Function (stringVar param)
(
Local stringVar oneChar := '0';
Local numberVar strLen := Length(param);
Local numberVar index := strLen;
oneChar = param[strLen];
while index > 0 and oneChar = '0' do
(
oneChar := param[index];
index := index - 1;
);
Left(param , index + 1);
)
Вы также можете попробовать использовать функцию замены:
заменить("10.00",".00","")
но это не сработает, если после десятичной точки стоят ненулевые числа.