Numero da stringa in un campo formula
-
22-08-2019 - |
Domanda
Sto usando un campo di formula per concatonate 2 valori decimali separati da un trattino. Tuttavia, voglio il risultato per tagliare tutti gli zeri finali unneccesary e punti decimali per entrambi i valori.
Per esempio, io voglio valori 10 e 8.5 per essere "10-8,5". Ora si vede. "10,00-8,50"
La formula che sto usando è CSTR({field1}) + " - " + CSTR({field2}).
Soluzione
Credo che questo sia quello che stai cercando:
Convertire numeri decimali di testo che mostra solo i non-zero decimali
In particolare questa linea potrebbe essere utile:
StringVar text := Totext ( {Your.NumberField} , 6 , "" ) ;
Il primo parametro è decimale da convertire, il secondo parametro è il numero di cifre decimali e il terzo parametro è il separatore per migliaia / milioni ecc
Altri suggerimenti
CSTR({number_field}, 0, '')
Il secondo segnaposto è per i decimali.
L'ultima segnaposto è per separatore delle migliaia.
ho scritto una funzione semplice per questo:
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);
)
Si può anche provare a utilizzare la funzione di sostituzione:
sostituire ( "10.00", "00", "")
ma non funziona se ci sono numeri diversi da zero dopo la virgola.