在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函数非常重要,无法避免。
答案 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));