1、新建自定义函数TrimPointZero
2、编写函数体 如下:
Function (stringVar str)
//如果不是数字型 返回原来的值日
if not NumericText(str) then
str
else
(
numbervar iPointNum:=InStr (str, '.');//判断该数字是不是含有小数点
//如果没有小数点 返回原来的值
if iPointNum<=0 then
str
else
(
//把小数点根据小数点号分隔成数组
stringvar array strs:=Split (str,".");
stringvar strres:=strs[2]; //数字小数点部分的字符串
numbervar j:=0;//小数点最后面0数量
Local NumberVar i;//变量循环
//循环得到小数点最后面0数量
for i :=length(strres) to 1 step -1 do
(
if mid(strres,i,1)<>'0' then
i:=0
else
j:=j+1;
);
if j=length(strres) then//如果最后全部为0 返回整数
(
if iPointNum=1 then
(
'0'
)
else
strs[1]
)
else
(
if iPointNum=1 then
(
'0'+'.'+mid(strres,1,length(strres)-j)
)
else
strs[1]+'.'+mid(strres,1,length(strres)-j)
)
)
)
3、完成调用
本文介绍如何创建自定义函数TrimPointZero,用于处理水晶报表中的数字字符串,移除小数点后多余的0。函数首先判断输入是否为数字,然后检查是否存在小数点。如果不存在小数点,直接返回原始值。反之,通过分割小数点得到数组,遍历小数部分计算0的数量。如果所有尾部都是0,则返回整数部分;否则,根据情况重新组合字符串,移除小数点后的0。
8729

被折叠的 条评论
为什么被折叠?



