我的雇主最近从基础SAS切换到SAS Enterprise Guide版本7.12。我有过去运行的代码没有问题,但是现在相同的代码无法用0美分格式化美元金额。我使用的格式是dollar20.2。如果我使用的数据为零美分,则将小数放在错误的位置。
例如,117650变为$ 1,176.50而不是$ 117,650.00
答案 0 :(得分:2)
看起来你混淆了INFORMAT和FORMAT。 INFORMAT告诉SAS如何将文本字符串转换为值,FORMAT告诉SAS如何将值转换为文本字符串。如果您有一个数字并使用DOLLAR20.2
格式,它将显示带有两位小数的数据。但是如果您使用DOLLAR20.2
信息读取数据,那么您告诉SAS,当该文本字符串没有小数位时,则假设在最后两位数之前隐含一个。基本上它将值除以100.一般来说,在INFORMATS上指定小数位置是个坏主意,除非您肯定希望SAS在不存在小数点时提供小数点。
您可能希望使用DOLLAR20.
(或等效的COMMA20.
)作为您的INFORMAT。