Online File
Rick Aster: Professional SAS Programming Shortcuts: Contents
DATA _NULL_; DO VALUE = 123456789, -.0000123456789, .123456789; IF VALUE THEN EXPONENT = FLOOR(LOG10(ABS(VALUE))); ELSE EXPONENT = 0; MANTISSA = VALUE/10**EXPONENT; IF 0 <= EXPONENT <= 99 THEN DO; IF MANTISSA >= 0 THEN PUT MANTISSA F7.5 'e' EXPONENT Z2.; ELSE PUT MANTISSA F7.4 'e' EXPONENT Z2.; END; ELSE IF EXPONENT >= -99 THEN DO; IF MANTISSA >= 0 THEN PUT MANTISSA F6.4 'e' EXPONENT Z3.; ELSE PUT MANTISSA F6.3 'e' EXPONENT Z3.; END; ELSE DO; IF MANTISSA >= 0 THEN PUT MANTISSA F5.3 'e' EXPONENT Z4.; ELSE PUT MANTISSA F5.2 'e' EXPONENT Z4.; END; END; RUN;