Pergunta

Eu estou usando um campo de fórmula para concatonate 2 valores decimais separados por um hífen. No entanto, eu quero o resultado para cortar todos os zeros finais desnecessários e pontos decimais para ambos os valores.

Por exemplo, eu quero valores 10 e 8,5 para ser "10-8,5". Agora ele mostra "10,00-8,50".

A fórmula que estou usando é CSTR({field1}) + " - " + CSTR({field2}).

Foi útil?

Solução

Eu acredito que este é o que você está procurando:

converter números decimais em texto que mostra apenas os diferentes de zero casas decimais

Especialmente esta linha pode ser útil:

StringVar text     :=  Totext ( {Your.NumberField} , 6 , ""  )  ;

O primeiro parâmetro é o decimal a ser convertido, o segundo parâmetro é o número de casas decimais eo terceiro parâmetro é o separador para milhares / milhões etc.

Outras dicas

CSTR({number_field}, 0, '')

O segundo espaço reservado é para decimais.

O último espaço reservado é para milhares separador.

Eu escrevi uma função simples para isso:

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);
)

Você também pode tentar usar a substituir a função:

substituir ( "10,00", "00", "")

mas não vai funcionar se houver diferentes de zero números após o ponto decimal.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top