I am reading a field AMT2 ($char10) in a flat file from mainframe. Although it's defined as $char10 in the input statement it contains numeric data only. It also contains a decimal point. (i.e. 10.50 )
INPUT @01 AMT2 $CHAR10
I use 'dollar' in the put statement
PUT @01 AMT2 DOLLAR
and this is what the output looks like: 10.50 .
Notice there is no '$' and there is a '.' at the end
Again, here is the input and the output
output: 10.50 .
Does anyone know how I can put a '$' at the beginning?
You have a SAS character variable (text string) which contains a numeric value, so you must assign a SAS numeric variable (using a FORMAT for your DOLLAR. formatted output objective), and convert the character string to numeric, using the SAS INPUT function.
The SAS support website hosts SAS documentation and supplemental technical reference documents from SAS user conferences - here is a link example on this topic:
Also when you 'put' the variable you need to add a dot to the end of DOLLAR so that SAS knows it is a format. Without the dot SAS assumes it is a variable name, it creates the variable and outputs it's value (which is obviously missing as you have not assigned anything to it). So SAS puts a dot in the output, i.e. it is tearting it as a missing numeric value.