SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 2499|回复: 3
打印 上一主题 下一主题

请教:如何读取大于14位的数字

[复制链接]

11

主题

49

帖子

267

积分

中级会员

Rank: 3Rank: 3

积分
267
跳转到指定楼层
楼主
发表于 2016-1-15 07:42:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
column ‘x1’ 在一个xlsx file里,x1是个14位 或 大于14-15位数字numeric column.
e.g.
x1
12345678901234
23456789012345
700289734351010
309829576219017
30298650673528
. . .

我用proc import读时结果成:
1.2345679E13
2.34567890E13
7.00289734E14
...

我试图把x1在xlsx里转换成char/text column,但结果还是一样。

请教如何解决这个问题?

谢谢!!!


分享到:  微信微信
收藏收藏
回复

使用道具 举报

0

主题

1

帖子

18

积分

新手上路

Rank: 1

积分
18
推荐
发表于 2016-1-26 03:20:39 | 只看该作者
是不是因为数值变量的default长度是12?加入一个这样的语句应该可以解决:
format x1 best20.

20可以根据你的数据的长度调节,16,18都可以。
回复 支持 1 反对 0

使用道具 举报

0

主题

3

帖子

182

积分

注册会员

Rank: 2

积分
182
沙发
发表于 2016-1-18 09:28:25 | 只看该作者
/*excel d:\temp\ahuige.xlsx*/
/*******************/
/*123456789012345*/
/*987654321098765*/
/*9123456789012345*/
/***********************/
/*
if it is within 15 digits (smaller than 9,007,199,254,740,992) then the numerical var is precise.
bigger than that you just forget about it, since SAS sets a bar there.
*/

proc import datafile="d:\temp\ahuige.xlsx" out=MYEXCEL ;
getnames=no;
run;
data ahuige;
format num best25.;
set MYEXCEL;
num=input(F1,best25.);
put _all_;
run;
回复 支持 反对

使用道具 举报

1

主题

2

帖子

9

积分

新手上路

Rank: 1

积分
9
地板
发表于 2016-4-19 09:41:42 | 只看该作者
12长度只是超过长度的数值采用了科学计数法显示的长度。
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2024-4-20 01:49 , Processed in 0.132784 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表