我有一个号码,我需要找到天花板和楼层值(203,400),以便使用此数字来创建加权平均值。从这个数字我想要:200,000和210,000所以我使用的代码不起作用是:
S1CovA_ceil = ceil(S1CovA,10000);
S1CovA_floor = floor(S1CovA,10000);
当我运行此程序时,我收到以下错误: 错误72-185:CEIL函数调用有太多参数。 错误72-185:FLOOR函数调用有太多参数。
有没有人知道我可以使用的这种或不同的SAS代码?
答案 0 :(得分:2)
CEIL
和FLOOR
仅删除小数 - 特别是舍入为整数值。如果你希望它舍入到(高于/低于)10,000的倍数,你必须做得更复杂一点:
S1CovA_ceil = ceil(s1covA/10000)*10000;
地板也一样。基本上你必须将它除以所需的舍入水平,用ceil / floor围绕其余部分,然后再乘以。
不幸的是,据我所知,除了直线整数舍入外,SAS不允许在特定方向上舍入。
答案 1 :(得分:1)
您也可以使用round()函数...
%LET ROUNDTO = 10000 ; data xyz ; S1CovA_ceil = round(S1CovA+(&ROUNDTO / 2),&ROUNDTO) ; S1CovA_floor = round(S1CovA-(&ROUNDTO / 2),&ROUNDTO) ; run ;
答案 2 :(得分:0)
尝试
S1CovA_ceil = ceil(S1CovA/10000)*10000;
S1CovA_floor = floor(S1CovA/10000)*10000;