1

我有一个数字,我需要找到 (203,400) 的上限和下限,以便使用该数字创建加权平均值。从这个数字我想要:200,000 和 210,000 所以我使用的代码不起作用是:

S1CovA_ceil = ceil(S1CovA,10000);
S1CovA_floor = floor(S1CovA,10000);

当我运行这个程序时,我得到了这些错误:错误 72-185:CEIL 函数调用有太多参数。错误 72-185:FLOOR 函数调用的参数太多。

有人知道我可以使用这个或不同的 SAS 代码的方法吗?

4

3 回答 3

2

CEIL并且FLOOR只删除小数 - 特别是四舍五入到整数值。如果你希望它四舍五入到(高于/低于)10,000 的倍数,你必须做的更复杂一点:

S1CovA_ceil = ceil(s1covA/10000)*10000;

地板也是如此。基本上你必须将它除以所需的舍入级别,用 ceil/floor 将其余部分舍入,然后乘回。

不幸的是,据我所知,除了直整数舍入之外,SAS 不允许在特定方向上舍入。

于 2014-01-16T17:06:53.150 回答
1

您还可以使用 round() 函数...

%LET ROUNDTO = 10000 ;
数据 xyz ;
  S1CovA_ceil = round(S1CovA+(&ROUNDTO / 2),&ROUNDTO) ;
  S1CovA_floor = round(S1CovA-(&ROUNDTO / 2),&ROUNDTO) ;
跑 ;
于 2014-01-17T09:01:29.557 回答
0

尝试

    S1CovA_ceil = ceil(S1CovA/10000)*10000;  
    S1CovA_floor = floor(S1CovA/10000)*10000;  
于 2014-01-16T17:09:05.320 回答