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.