我想计算一个数字的log10下限和上限值。例如。对于val=4
,它应该返回1
作为较低的10
作为较高的log10值。
data a;
infile datalines;
input val;
datalines;
4
27
38765
983434
;
run;
这应该是结果:
我如何实现这一目标以及需要哪些功能?函数log10
仅计算val
到10的基数值。
答案 0 :(得分:2)
我不是数学博士,但log10
执行log10
所说的,即计算数字的log-base-10。我从来没有听说过“较低的log10”或“较高的log10”,据我所知也没有谷歌。
你想要的是具有整数对数(基数10)的数字,该数字小于或等于给定的数字,以及具有整数对数(基数10)的数字,该数字大于或等于给定的数字。 (如果给出的数字恰好是10,你不说该怎么做)。
通过在地板/ 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;