最佳SAS格式,用于十进制前后有大量数字的数字

时间:2015-02-27 06:49:40

标签: sas

我想使用infile声明 -

阅读并显示如下的数字
  • 0.02133322413531
  • 25895449673.5189
  • 190848802804.89248974

不会丢失平面文件中的任何数字(显着和非重要),这些数字是用于输入,信息和格式的最佳格式。

修改

到目前为止已经尝试过,数字被截断为最后一个,其余两个都很顺利

data _null_;
infile datalines;
format x BEST32.;
input x : BEST32.;
put x=;
datalines;
0.02133322413531
25895449673.5189
190848802804.89248974
;
run;

输出:

  • x = 0.02133322413531
  • x = 25895449673.5189
  • x = 190848802804.892< ---获取截断

2 个答案:

答案 0 :(得分:7)

在8字节的默认数字长度下,SAS只能将浮点值精确存储到大约15位数。这个link最能说明原因。

或者为了进一步阅读,link提供了更详细的信息

答案 1 :(得分:0)

如果将数字存储为字符变量,则不会丢失任何数字。

每次执行计算时,都可以使用input function转换为数字。

 input(number_string,format.)

此外,如果您使用Data Step 2 (DS2),那么您不仅限于datatypes,您还可以使用decimal(p,q),其中(p,q)左右两侧的数字小数点,最多可达52。