2009-05-15 29 views
13

Estoy usando un campo de fórmula para concatunar 2 valores decimales separados por un guión. Sin embargo, quiero que el resultado recorte todos los ceros y puntos decimales innecesarios para ambos valores.Número a cadena en un campo de fórmula

Por ejemplo, quiero que los valores 10 y 8.5 sean "10 - 8.5". Ahora muestra "10.00 - 8.50".

La fórmula que estoy usando es CSTR({field1}) + " - " + CSTR({field2}).

Respuesta

27

Creo que esto es lo que estás buscando:

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

Especialmente esta línea podría ser útil:

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

El primer parámetro es el decimal que se convertirá, el segundo parámetro es el número de decimales y el tercer parámetro es el separador de miles/millones, etc.

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

El segundo marcador de posición es para decimales.

El último marcador de posición es para el separador de miles.

-1

También puede intentar utilizar la función Reemplazar:

sustituir ("10.00", "" "00").

pero no va a funcionar si hay números no nulos después del punto decimal.

1

escribí una función simple para esto:

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