2016-10-16 60 views
1

我的雇主最近从基础SAS切换到SAS企业指南7.12版。我有过去没有问题的代码,但现在相同的代码无法用美分格式化美元金额。我正在使用格式dollar20.2。如果我使用的数据有零美分,它将小数位置放在错误的位置。SAS美元格式损失零美分

例如,117650成为$ 1,176.50,而不是$ 117,650.00

+0

看起来像20.2的信息正在被应用 - .2告诉SAS必须有2位小数。 – Reeza

回答

2

看起来你是在混淆INFORMAT和格式。 INFORMAT告诉SAS如何将文本字符串转换为值,FORMAT告诉SAS如何将值转换为文本字符串。如果您有一个号码并使用DOLLAR20.2格式,它将显示带有两位小数的数据。但是,如果您使用DOLLAR20.2信息读取数据,那么您告诉SAS,如果该文本字符串没有小数位,则假定在最后两位数字之前隐含一个。基本上它将数值除以100.一般来说,在INFORMATS中指定小数点位置是个不错的主意,除非您肯定您希望SAS在不存在时提供小数点。

您可能想要使用DOLLAR20.(或等效的COMMA20.)作为INFORMAT。