【发布时间】:2010-10-26 13:31:28
【问题描述】:
我正在使用公式字段来连接用破折号分隔的 2 个十进制值。但是,我希望结果为两个值修剪所有不必要的尾随零和小数点。
例如,我希望值 10 和 8.5 为“10 - 8.5”。现在它显示“10.00 - 8.50”。
我使用的公式是CSTR({field1}) + " - " + CSTR({field2}).
【问题讨论】:
标签: crystal-reports data-conversion
我正在使用公式字段来连接用破折号分隔的 2 个十进制值。但是,我希望结果为两个值修剪所有不必要的尾随零和小数点。
例如,我希望值 10 和 8.5 为“10 - 8.5”。现在它显示“10.00 - 8.50”。
我使用的公式是CSTR({field1}) + " - " + CSTR({field2}).
【问题讨论】:
标签: crystal-reports data-conversion
我相信这就是您要找的:
Convert Decimal Numbers to Text showing only the non-zero decimals
尤其是这一行可能会有所帮助:
StringVar text := Totext ( {Your.NumberField} , 6 , "" ) ;
第一个参数是要转换的小数,第二个参数是小数位数,第三个参数是千/百万等分隔符。
【讨论】:
CSTR({number_field}, 0, '')
第二个占位符用于小数。
最后一个占位符是千位分隔符。
【讨论】:
我为此写了一个简单的函数:
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);
)
【讨论】: