计算数字的上下log10值
Calculate lower and upper log10 value of numbers
我想计算一个数字的 log10 上下限值。例如。对于 val=4
,它应该 return 1
作为较低的 log10 值,10
作为较高的 log10 值。
data a;
infile datalines;
input val;
datalines;
4
27
38765
983434
;
run;
这应该是结果:
如何实现,需要哪些功能?函数 log10
只计算 val
以 10 为底的值。
我不是数学家 Ph.D,但是 log10
按照 log10
的说法去做,即计算一个数字的对数底数 10。据我所知,我从未听说过 "lower log10" 或 "upper log10",也没有听说过 Google。
听起来您想要的是小于或等于给定数字的整数对数(以 10 为底)的数字,以及具有整数对数(以 10 为底)的数字大于或等于给定的数字。 (如果给的数字刚好是10,你不说怎么办)
通过在 floor/ceil:
之后重新取幂很容易完成
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 上下限值。例如。对于 val=4
,它应该 return 1
作为较低的 log10 值,10
作为较高的 log10 值。
data a;
infile datalines;
input val;
datalines;
4
27
38765
983434
;
run;
这应该是结果:
如何实现,需要哪些功能?函数 log10
只计算 val
以 10 为底的值。
我不是数学家 Ph.D,但是 log10
按照 log10
的说法去做,即计算一个数字的对数底数 10。据我所知,我从未听说过 "lower log10" 或 "upper log10",也没有听说过 Google。
听起来您想要的是小于或等于给定数字的整数对数(以 10 为底)的数字,以及具有整数对数(以 10 为底)的数字大于或等于给定的数字。 (如果给的数字刚好是10,你不说怎么办)
通过在 floor/ceil:
之后重新取幂很容易完成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;