You can drive this process using an ARRAY in a single DATA step pass of each file. The ARRAY can be declared so that only _NUMERIC_ variables are included, presuming you are not attempting to parse CHARACTER type variables that contain numbers, otherwise the array can be declared with _ALL_ to process all CHARACTER and NUMERIC type variables.
Also, when you detect a variable that has the required data-string content (beyond 1 decimal place), you could identify the array subscript as a "keeper", maybe using CALL SYMPUT, once you have detected at least one observation that has the variable content.
These are but a few points relative to how you might want to consider optimizing the processing to reach your objective.
Scott Barry
SBBWorks, Inc.