如何从Crystal报表中的十进制数中删除不需要的Zeor



在我的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;

最新更新