【发布时间】:2019-06-07 06:57:01
【问题描述】:
在 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 函数非常重要,不能回避。
【问题讨论】:
-
您是否尝试将格式从 10.3 更改为 10.4?
-
是的,我做到了,但我想要 3 个小数位。
-
如果你只想要3个名额,为什么第一轮很重要?这里还有其他你没有提到的目标吗?只转一次。
-
然后舍入到 0.001 而不是 0.0001。当逐位数字 0.4444444449 可以变为 1 时,这似乎不正确。
-
@KH_ 但你做得不对。对两者使用相同的精度。
标签: sas