2017-07-07 204 views
0

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

data a; 
    infile datalines; 
    input val; 
    datalines; 
4 
27 
38765 
983434 
; 
run; 

这应该是结果:

expected result

我怎样才能做到这一点,需要哪些功能呢?该功能log10计算val只是价值的10

回答

2

基地我不是一个数学博士,但log10做什么log10说确实如此,即计算出的对数基10数。我从来没有听说过“较低的log10”或“较高的log10”,Google也没有听说过。

它听起来像你想要的是一个整数对数(基数为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;