gpt4 book ai didi

sas - SAS 中的大数异常

转载 作者:行者123 更新时间:2023-12-03 21:48:00 28 4
gpt4 key购买 nike

有人知道为什么“numero”中储存的数字与我放在 let 中的数字不同吗?
我使用 SAS Enterprise Guide 7.1。
这是我的程序:

%let ident = 4644968792486317489 ;

data _null_ ;
numero= put(&ident.,z19.);
call symputx('numero',numero);
run;

%put &numero. ;
和日志:
30         %let ident = 4644968792486317489 ;
31
32 data _null_ ;
33 numero= put(&ident.,z19.);
34 call symputx('numero',numero);
35 run;

NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.00 seconds


36
37 %put &numero. ;
4644968792486317056
提前致谢!

最佳答案

SAS 将数字存储为 8 字节浮点值。因此,可以精确存储的最大整数(或实际上完全没有间隙)是有限制的。他们甚至发布了 table with the maximum value .
enter image description here
以及可用于确定最大值的函数。

3    %put %sysfunc(constant(exactint),comma23.);
9,007,199,254,740,992
看起来您的“号码”实际上是一个标识符。因此,将其存储为字符开始,您将不会遇到这些问题。
data want;
length numero $19;
numero = "&ident";
numero = translate(right(numero),'0',' ');
run;

关于sas - SAS 中的大数异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63634214/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com