式フィールドを使用して、ダッシュで区切られた2つの10進値を連結します。しかし、私は両方の値の不必要な末尾のゼロと小数点をすべてトリミングする必要があります。数式フィールドの文字列への番号
たとえば、値10と8.5を「10〜8.5」にします。今度は "10.00 - 8.50"と表示されます。
私が使用している式は、私は、これはあなたが探しているものであると考えていCSTR({field1}) + " - " + CSTR({field2}).
式フィールドを使用して、ダッシュで区切られた2つの10進値を連結します。しかし、私は両方の値の不必要な末尾のゼロと小数点をすべてトリミングする必要があります。数式フィールドの文字列への番号
たとえば、値10と8.5を「10〜8.5」にします。今度は "10.00 - 8.50"と表示されます。
私が使用している式は、私は、これはあなたが探しているものであると考えていCSTR({field1}) + " - " + CSTR({field2}).
です:
Convert Decimal Numbers to Text showing only the non-zero decimals
特に、このラインが役に立つかもしれません:
StringVar text := Totext ({Your.NumberField} , 6 , "" ) ;
最初のパラメータは変換される小数であり、2番目のパラメータは小数点以下の桁数であり、3番目のパラメータ数千または数百万などのセパレータです。
CSTR({number_field}, 0, '')
2番目のプレースホルダは小数点以下の桁数です。
最後のプレースホルダは桁区切り記号です。
また、機能を置き換える使用して試すことができます:
置き換える( "10.00"、 "" "00")
が、非ゼロの数字がある場合、それは動作しません。小数点の後に。
私はこのための簡単な関数を書いた:
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);
)
を