在我的Crystal Report中,我有三种类型的十进制数字。
1) 11.00 , 2.00
2) 2.50, 1.30
3) 11.75, 2.25
我需要将这3种类型格式化为以下
1) 11, 2
2) 2.5, 1.3
3) 11.75, 2.25
这意味着我想从我的十进制数字中删除不需要的零。怎么能做到?
- 右键单击报表画布上的字段
- 选择格式字段
- 选择数字选项卡
- 选择自定义样式
- 选择自定义
-
在小数点旁边选择X-2框并输入以下公式
numbervar dec := 9; numbervar i; numbervar j := dec + 1; numbervar x; for i := 1 to j do ( if val(right(totext(currentfieldvalue,j,""),i)) = 0 then x := j - i); x
在下面,选择舍入旁边的X-2按钮并输入此公式
numbervar dec;
试试这个:
if ".0" IN ToText({ABC.ABC})
then
Replace(Replace (ToText({ABC.ABC}), ".0","" ),"0","")
else
Replace (ToText({ABC.ABC}), "0","" )
使用以下代码创建自定义函数:
Function (NumberVar nNumber)
Local StringVar sNumber := ToText(nNumber, 5); // 5 digits after floating point
sNumber := Replace(sNumber, "0", " "); // replacing 0 to whitespaces so that TrimRight will work
sNumber := TrimRight(sNumber);
sNumber := Replace(sNumber, " ", "0"); // replacing whitespaces back to 0
// Remove . at the end if the number was an integer
If Right(sNumber, 1) = "." Then
sNumber := Left(sNumber, Length(sNumber)-1);
sNumber;