Another important point is that the concept of the "number of decimal places" of the value of a numeric variable in SAS is more difficult than you might think. Whenever you display such a value (be it with a PUT statement, PROC PRINT, VIEWTABLE, ...) you see a formatted value. If you didn't specify the format, SAS chooses one for you (and it's sometimes hard to say which one exactly).
The formatting is necessary because numeric values are stored internally in what is called a binary floating-point representation (see Numerical Accuracy in SAS Software for details), which is ideal for the computer, but hard to read for humans. The exact decimal value corresponding to a particular binary floating-point representation can easily have more decimal places than any of the usual SAS formats (even the long ones such as BEST32.) could display.
So, the question of the number of decimal places should ideally refer to a specific format (like 20.12 in your example), which makes the answer easy, but also somewhat unsatisfactory, because the choice of the format is arbitrary to some extent.
... View more