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