I have a question similar to the earlier one on this blog.

I am working in SAS IML and trying to dynamically create a format to print the values of an IML matrix. I determine the width w and the number of decimal places to display depending on the size of the largest and smallest values. I store the width and number of decimals in the scalars w and d respectively. I tried to create a macro variable for the format (w.d) of the matrix using the following code.
call symput('matfrmt', left(trim(char(w))) || "." || left(trim(char(d))) );

In IML, I create scalars w with value 12 and d with value 5. When I submit
w = 12;
d = 5;
call symput('matfrmt', left(trim(char(w))) || "." || left(trim(char(d))) );
%put "matfrmt=&matfrmt";

SAS displays "matfrmt=5 "

Why don't I see "matfrmt=12.5" ?