Число в строку в поле формулы

Я использую поле формулы для сравнения двух десятичных значений, разделенных тире. Тем не менее, я хочу, чтобы результат обрезал все ненужные конечные нули и десятичные точки для обоих значений.

Например, я хочу, чтобы значения 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", "")

но он не будет работать, если после десятичной точки есть ненулевые числа.