楼主: superyxo
4063 7

不知道长度的字符型变量转换成数值型变量 [推广有奖]

  • 2关注
  • 1粉丝

硕士生

64%

还不是VIP/贵宾

-

威望
0
论坛币
91 个
通用积分
1.0005
学术水平
7 点
热心指数
2 点
信用等级
2 点
经验
9870 点
帖子
93
精华
0
在线时间
199 小时
注册时间
2007-8-28
最后登录
2021-4-15

楼主
superyxo 发表于 2012-9-7 05:21:20 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我有一个字符型的变量interest,需要转换成数值型的变量,保留小数点后两位,我想用input(interest,n.2) 但是我不知道这个字符的最大长度是多少,所以n不能确定,请问用什么方法可以正确的转换(不丢失位数)? 多谢多谢
二维码

扫码加我 拉你入群

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

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

关键词:字符型变量 变量转换 字符型 数值型 不知道 interest 小数点 我不知道

沙发
leonkd 在职认证  发表于 2012-9-7 06:48:09
可以设另一个变量 l_itrst=length(interest), 然后就sort一下就可以看到最长的那个了

藤椅
leonkd 在职认证  发表于 2012-9-7 06:52:37
如果你要知道小数点前面最长有几位,也可以用int_itrs=index(interst, '.'),这样你就知道小数点在第几位了,然后同样可以知道最大的。

sample code:
data temp;
length char $30.;
input char $;
datalines;
14452162.34636
42.3
13455.345
6546778
45252.34
63578.23552536747
1.2
;
m=length(char);
n=index(char,'.');
run;
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
superyxo + 1 + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

板凳
leonkd 在职认证  发表于 2012-9-7 06:54:35
但是这样还有个问题,当这个数没有小数点的时候,index()function返回的是0,那么你要取length()的值

报纸
superyxo 发表于 2012-9-7 07:27:18
leonkd 发表于 2012-9-7 06:52
如果你要知道小数点前面最长有几位,也可以用int_itrs=index(interst, '.'),这样你就知道小数点在第几位了 ...
多谢多谢!假设我找到了char最长的长度是w,小数位最多的是d位,是不是直接用input(char,w.d)就可以了?
假设w=6 d=2,char有个值是1234,不会input之后变12.34吧?
我sas基础太差,看informat和format的说明已经看晕了。。。。。

地板
leonkd 在职认证  发表于 2012-9-9 07:06:04
用round(interst, 0.01)

7
nomad5 发表于 2012-9-9 09:54:23
可以试试 round(interst,0.01)

8
ntsean 发表于 2012-9-9 12:13:38
best20.2
20应该够长,如果不够还可以增加

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 13:50