DATA Step, Macro, Functions and more

Dollar function not working properly

Reply
Regular Contributor
Posts: 173

Dollar function not working properly

Hello,

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
input: 10.50
output: 10.50 .

Does anyone know how I can put a '$' at the beginning?

Thank you!
Super Contributor
Super Contributor
Posts: 3,174

Re: Dollar function not working properly

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:

http://support.sas.com/kb/24/590.html


Related SAS DOC reference:

http://support.sas.com/documentation/cdl/en/lrcon/61722/HTML/default/a000780416.htm

Scott Barry
SBBWorks, Inc.
Regular Contributor
Posts: 173

Re: Dollar function not working properly

Thank you so much!!!
N/A
Posts: 0

Re: Dollar function not working properly

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.
Ask a Question
Discussion stats
  • 3 replies
  • 131 views
  • 0 likes
  • 3 in conversation