SAS中文论坛
标题:
这段程序为什么总想不明白?
[打印本页]
作者:
shiyiming
时间:
2006-3-30 13:32
标题:
这段程序为什么总想不明白?
[code:8185e]
data work.areacodes;
phonenumber = 3125551212;
code = '('!!substr(phonenumber,1,3)!!')';
run;
[/code:8185e]
我总觉得结果应该是(312)。为什么会是( 3)
作者:
shiyiming
时间:
2006-3-30 14:00
标题:
to maurice
好问题,看来你看PROG2的教材很仔细!
这是因为phonenumber=3125551212本来是数字型,现在被用在substr(phonenumber,1,3)里就自动转换成字符型。之前没有定义过长度,所以默认就是phonenumber的format的长度,phonenumber的默认format是BEST12.,所以就是12位,于是'3125551212'被填在12为的字符中,而且是规定是右对齐,这样就成了' 3125551212'。substr(phonenumber,1,3)自然就成了' 3'。
[code:375f8]code = '('!!substr(compress(phonenumber),1,3)!!')';[/code:375f8]
作者:
shiyiming
时间:
2006-3-30 17:20
标题:
to shiyiming
谢谢指点
欢迎光临 SAS中文论坛 (http://mysas.net/forum/)
Powered by Discuz! X3.2