我偶尔需要将数字更改为字符串,同时保持一个不错的数字格式(例如,为了将它们放入通过语法构建的句子中)。 保持小数部分格式很容易,例如:
string MyTextN (a10).
compute MyTextN=string(MyNumericN, f10.2).
所以 12345.6789 这样的数字会保存为此文字:" 12345.68" 即可。 我缺少的是1000的分隔符。我希望文字是:" 12,345.68" 即可。 现在我正在做一些文本操作来获得这个(通常是循环数字并在第四和第七个之前插入逗号), 但是我想知道是否有我不知道的内置功能,或者是否有人能提出捷径? 谢谢!
答案 0 :(得分:2)
不幸的是,转换系统和后端通常不知道数字分组设置,因此字符串函数忽略它(这可能是你大多数时候想要的)。
您可以使用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,