Macro (fácil) de SAS. Longitud de la parte decimal de un número

Muy sencillo, vemos el programa y posteriormente lo transformamos en una macro de SAS:

data aleat;

do i = 1 to 100;

aleatorio=ranuni(8)*1000;

largo_decimal = length(scan(put(aleatorio,best32.),2,"."));

output;

end;

run;

Sencillo, pasamos de número a carácter con PUT y buscamos el punto con SCAN, extraemos la segunda parte del carácter separado por punto y vemos su longitud. Esto pasado a una macro:

%macro largo_decimal(num);

length(scan(put(&num.,best32.),2,"."))

%mend;

data aleat;

do i = 1 to 100;

aleatorio=ranuni(8)*1000;

largo_decimal = %largo_decimal(aleatorio);

output;

end;

run;

Sencillo, a mi hoy me ha sido útil. Saludos.