全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
17128 9
2011-11-01
研究SAS有不长时间,但出现这个问题不知道如何解答~~~~~
有如下程序:
data test;
length x 5;
x=1/3;
put x=;
run;
proc contents data=test;
run;
put输出结果为:

x=0.3333333333   (共12位)
而在数据集中显示:x=0.333333333  (共11位)
length x 5;这个里面的5在哪里可以体现出来,不知道这长度5有什么用呢???






二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2011-11-1 18:17:51
length x 5;是指X占内存的长度,并不是指字符的长度。如果只想输出5位字符的话,调用函数即可:
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-11-1 23:02:31
这个问题是这样的,length这里控制的是输出数据集中的字符长度,你用put的话,在sas log里面还是会输出sas默认的数值格式也即12位,data test;
length x 5;
x=1/3;
put x=;
run;
proc print data=test;
run;
你用这个run下你就知道了!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-11-2 09:23:33
luorongjin 发表于 2011-11-1 23:02
这个问题是这样的,length这里控制的是输出数据集中的字符长度,你用put的话,在sas log里面还是会输出sas默 ...
嗯,果然是这样
学习了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-11-2 12:36:58
luorongjin 发表于 2011-11-1 23:02
这个问题是这样的,length这里控制的是输出数据集中的字符长度,你用put的话,在sas log里面还是会输出sas默 ...
我看到了运行结果!日志里面输出的确是12位的,但是output里面输出的和打开数据集看见的位数为什么不一样呢???
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-11-2 12:42:53
tj0412ymy 发表于 2011-11-1 18:17
length x 5;是指X占内存的长度,并不是指字符的长度。如果只想输出5位字符的话,调用函数即可:
非常感谢!那你说的这里的内存长度是5Byte吗?这个函数可以设置输出字符位数,但数据集中显示的值为什么又变成了0.3332999991了呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群