2017-07-07 5 views
0

数値のlog10の下側と上側の値を計算したいと思います。例えば。 val=4の場合は、1を下位に、を上位log10値として返す必要があります。数字の下側と上側のlog10値を計算してください

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

これは結果でなければなりません:

expected result

どのように私はこれを達成することができますし、どの機能が必要とされていますか?機能log10は、私は数学の博士号を取得していない10

答えて

2

のベースにvalの値だけを計算しますが、log10log10が、それは、つまり、ログ・ベース-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; 
関連する問題