SAS中的推入和舍入功能

时间:2019-06-07 06:57:01

标签: sas

在SAS中同时使用round函数和put函数时,如何避免两次舍入?以下面的代码为例:

data _null_;
  sd = 11.863499608;
  sdc = strip(put(round(sd,0.0001),10.3));
  put sdc=; 
run;

实际结果应该为11.863,但是put函数从已经取整的值11.8635向上取整,得出的最终结果为11.864。 有人可以告诉我如何避免通过PUT函数进行第二次舍入吗?请注意,第一个ROUND函数非常重要,无法避免。

2 个答案:

答案 0 :(得分:1)

在某些情况下,Fw.d格式未按预期四舍五入。最好在使用格式之前将其四舍五入为所需的数字和小数。

20   data _null_;
21      x=0-1e-5;
22      put x=best.;
23      y = put(x,5.2);
24      put y= 'Negative 0 need to round';
25      z = put(round(x,.01),5.2);
26      put z=;
27      run;

x=-0.00001
y=-0.00 Negative 0 need to round
z=0.00

答案 1 :(得分:0)

尝试使用:

sdc = strip(put(round(sd,0.001),10.3));