将数字更改为字符串时保持数字格式

Keeping number format when changing number to string

我偶尔需要将数字更改为字符串,同时保持良好的数字格式(例如,为了将它们放入通过语法构建的句子中)。 保留格式的小数部分很容易,例如:

string MyTextN (a10).
compute MyTextN=string(MyNumericN, f10.2).

所以像 12345.6789 这样的数字被保存为这个文本:" 12345.68"。 我缺少的是 1000 的分隔符。我希望文本为:" 12,345.68"。 现在我正在做一些文本操作来得到这个(通常 - 遍历数字并在第四个和第七个之前插入逗号), 但我想知道是否有我不知道的内置功能,或者是否有人可以建议一个快捷方式? 谢谢!

不幸的是,转换系统和后端通常不知道数字分组设置,因此字符串函数会忽略它(这可能是您大多数时候想要的)。

您可以为此使用 Python,例如

'{:,}'.format(123456789)  

'123,456,789'

可以使用 SPSSINC TRANS 命令来执行此操作,尽管它可能有点矫枉过正。

这里是一个例子,其中x是要转换为字符串的变量。

begin program.  
def strWSeparators(x):
    if x is not None:  
        return '{:,}'.format(x)
    else:
        return None
end program.

spssinc trans result=y type=15
/formula "strWSeparators(x)".

结果是一个15字节的字符串变量,y,