Sas 计算数字的下限和上限log10值

Sas 计算数字的下限和上限log10值,sas,logarithm,Sas,Logarithm,我想计算一个数字的log10上下限值。例如,对于val=4,它应返回1作为下限值,返回10作为上限log10值 data a; infile datalines; input val; datalines; 4 27 38765 983434 ; run; 结果应该是: 我如何实现这一点以及需要哪些功能?函数log10只计算以10为基数的val值。我不是数学博士,但log10做的是log10所说的,即计算一个数字的logbase-10。据我所知,我从未听说过“LowerLog10

我想计算一个数字的log10上下限值。例如,对于
val=4
,它应返回
1
作为下限值,返回
10
作为上限log10值

data a;
  infile datalines;
  input val;
  datalines;
4
27
38765
983434
;
run;
结果应该是:


我如何实现这一点以及需要哪些功能?函数
log10
只计算以10为基数的
val
值。

我不是数学博士,但
log10
做的是
log10
所说的,即计算一个数字的logbase-10。据我所知,我从未听说过“LowerLog10”或“upper log10”,谷歌也从未听说过

听起来你想要的是一个整数对数(以10为底)小于或等于给定数字的数字,以及一个整数对数(以10为底)大于或等于给定数字的数字。(如果给出的数字正好是10,你不说该怎么办)

通过在地板/天花板之后重新求幂,可以很容易地完成:

data _null_;
  input x;
  l_x = 10**(floor(log10(x)));
  u_x = 10**(ceil(log10(x)));
  put x= l_x= u_x=;
datalines;
4
27
38765
983434
;;;;
run;

我不是数学博士,但是
log10
log10
所说的事情,即计算一个数字的logbase-10。据我所知,我从未听说过“LowerLog10”或“upper log10”,谷歌也从未听说过

听起来你想要的是一个整数对数(以10为底)小于或等于给定数字的数字,以及一个整数对数(以10为底)大于或等于给定数字的数字。(如果给出的数字正好是10,你不说该怎么办)

通过在地板/天花板之后重新求幂,可以很容易地完成:

data _null_;
  input x;
  l_x = 10**(floor(log10(x)));
  u_x = 10**(ceil(log10(x)));
  put x= l_x= u_x=;
datalines;
4
27
38765
983434
;;;;
run;