Sas comma9.2为什么不起作用?
有人能告诉我为什么Sas comma9.2为什么不起作用?,sas,Sas,有人能告诉我为什么comma9.2不能在我的sas代码中工作吗 data have; input x $16.; y = input(x, comma9.2); z = input(x, comma9.); put x= y= z= ; cards; 1,740.32 5200 520 52 7,425 9,000.00 36,000.00 ; run; Comma9.2假设值始终有两位小数。要扩展Reeza的答案: 信息小数位不像格式小数位那样有效。几乎在所有情况下,您都不希望或不需要在信息
comma9.2
不能在我的sas代码中工作吗
data have;
input x $16.;
y = input(x, comma9.2);
z = input(x, comma9.);
put x= y= z= ;
cards;
1,740.32
5200
520
52
7,425
9,000.00
36,000.00
;
run;
Comma9.2假设值始终有两位小数。要扩展Reeza的答案: 信息小数位不像格式小数位那样有效。几乎在所有情况下,您都不希望或不需要在信息中指定
d
Comma9.
几乎总是正确的,不管您期望小数位数是多少,即使您期望总是两位
小数位数的唯一用途是当您有一个像12345600
这样的数字时,它没有小数点,但应该有小数点(最后两个零在小数点后)
这在穿孔卡片时代很常见,尤其是在会计方面;由于所有内容都是以美元和美分为单位的,因此您可以省去小数点来保存一列,而只需用两个小数点来读取所有内容。它在大多数领域不再常见(至少在我的经验中是这样),但SAS总是向后兼容的
如果在数据中遇到小数点,SAS将忽略.d
规范(然后将使用该小数点的位置正确读入值),但如果数据中没有小数点,则如果指定.d
,SAS可能会错误读入。注意,在我的示例中,最后一行有一个小数点,后跟三位小数,并且读取正确
您可以阅读更多信息。非常感谢您,Reeza。所以,如果有混合的情况,我应该使用comma9,对吗?为了让这成为一个好问题,你应该解释什么是不正确的。虽然对我来说这是显而易见的,但对其他人来说,错误是什么可能并不明显——对你来说也不明显——而提供错误的解释将有助于其他人解决同样的问题(并有助于获得更好的答案)。
data _null_;
input numval 8.2;
put numval=;
datalines;
12345600
12345605
99999989
1857.145
;;;;
run;