If you specify a variable in an expression, but the variable value
does not match the type called for, SAS attempts to convert the value
to the expected type. SAS automatically converts character variables
to numeric variables and numeric variables to character variables,
according to the following rules:
-
If you use a character variable
with an operator that requires numeric operands, such as the plus
sign, SAS converts the character variable to numeric.
-
If you use a comparison operator,
such as the equal sign, to compare a character variable and a numeric
variable, the character variable is converted to numeric.
-
If you use a numeric variable with
an operator that requires a character value, such as the concatenation
operator, the numeric value is converted to character using the BEST12.
format. Because SAS stores the results of the conversion beginning
with the right-most byte, you must store the converted values in a
variable of sufficient length to accommodate the BEST12. format. You
can use the LEFT function to left-justify a result.
-
If you use a numeric variable on
the left side of an assignment statement and a character variable
on the right, the character variable is converted to numeric. In the
opposite situation, where the character variable is on the left and
the numeric is on the right, SAS converts the numeric variable to
character using the BESTn. format, where n is the length of the variable
on the left.
When SAS performs an
automatic conversion, it prints a note in the SAS log informing you
that the conversion took place. If converting a character variable
to numeric produces invalid numeric values, SAS assigns a missing
value to the result, prints an error message in the log, and sets
the value of the automatic variable _ERROR_ to 1.