Число в строку в поле формулы
Я использую поле формулы для сравнения двух десятичных значений, разделенных тире. Тем не менее, я хочу, чтобы результат обрезал все ненужные конечные нули и десятичные точки для обоих значений.
Например, я хочу, чтобы значения 10 и 8.5 были "10 - 8.5". Теперь он показывает "10.00 - 8.50".
Используемая мной формула CSTR({field1}) + " - " + CSTR({field2}).
Ответы
Ответ 1
Я считаю, что это то, что вы ищете:
Преобразование десятичных чисел в текст, показывающий только ненулевые десятичные знаки
Особенно эта строка может быть полезна:
StringVar text := Totext ( {Your.NumberField} , 6 , "" ) ;
Первый параметр - десятичная величина, подлежащая преобразованию, второй параметр - число десятичных знаков, а третий параметр - разделитель для тысяч/миллионов и т.д.
Ответ 2
CSTR({number_field}, 0, '')
Второй заполнитель для десятичных знаков.
Последний заполнитель предназначен для разделителя тысяч.
Ответ 3
Я написал для этого простую функцию:
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);
)
Ответ 4
Вы также можете попробовать использовать функцию замены:
заменить ( "10,00", "00", "")
но он не будет работать, если после десятичной точки есть ненулевые числа.