2009-05-15 8 views
13

J'utilise un champ de formule pour concaténer deux valeurs décimales séparées par un tiret. Cependant, je veux que le résultat supprime tous les zéros finaux et les points décimaux non nécessaires pour les deux valeurs. Par exemple, je veux que les valeurs 10 et 8.5 soient "10 - 8,5". Maintenant, il montre "10h00 - 8h50".Nombre à chaîne dans un champ de formule

La formule que je utilise est CSTR({field1}) + " - " + CSTR({field2}).

Répondre

27

Je crois que c'est ce que vous cherchez:

Convert Decimal Numbers to Text showing only the non-zero decimals

Surtout cette ligne pourrait être utile:

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

Le le premier paramètre est la décimale à convertir, le deuxième paramètre est le nombre de décimales et le troisième paramètre est le séparateur pour des milliers/millions, etc.

22
CSTR({number_field}, 0, '') 

Le deuxième espace réservé est pour les décimales.

Le dernier espace réservé est pour le séparateur de milliers.

-1

Vous pouvez également essayer d'utiliser la fonction Replace:

remplacer ("10.00", "" "00".)

mais il ne fonctionnera pas s'il y a un nombre non nuls après le point décimal.

1

i a écrit une fonction simple pour cela:

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