Вопрос

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top