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 con LENGTH. 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 mí hoy me ha sido útil. Saludos.