2009-05-15 5 views
13

Ich benutze ein Formelfeld, um zwei Dezimalwerte durch einen Bindestrich getrennt zu verbinden. Ich möchte jedoch, dass das Ergebnis alle unnötigen abschließenden Nullen und Dezimalpunkte für beide Werte trimmt.Nummer zu String in einem Formelfeld

Zum Beispiel möchte ich, dass die Werte 10 und 8,5 "10 - 8,5" sind. Jetzt zeigt es "10.00 - 8.50".

Die Formel ich verwende ist CSTR({field1}) + " - " + CSTR({field2}).

Antwort

27

Ich glaube, das ist das, was Sie suchen:

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

Insbesondere könnte diese Linie nützlich sein:

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

Die Der erste Parameter ist der zu konvertierende Dezimalwert, der zweite Parameter ist die Anzahl der Dezimalstellen und der dritte Parameter ist das Trennzeichen für Tausende/Millionen usw.

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

Der zweite Platzhalter ist für Dezimalzahlen.

Der letzte Platzhalter ist für Tausendertrennzeichen.

-1

Sie können auch versuchen, die Funktion ersetzen mit:

ersetzen ("10.00", "" "00").

aber es wird nicht funktionieren, wenn es nicht Null Zahlen nach dem Komma.

1

i schrieb eine einfache Funktion dafür:

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