Help using Base SAS procedures

dollar format: not define the w?

Reply
Frequent Contributor
Posts: 100

dollar format: not define the w?

Experts:
Is it possible to tell SAS to format a numeric value in dollar format without having to specify the w? Sometimes all I want to make sure is to limit the decimal points. If the format is for a cumulative variable (e.g. total payments from a large number of customers), I'm hoping to avoid the trouble of estimating how large the total will be to make sure dollar w.d has enough width.
Thank you!
SAS Super FREQ
Posts: 8,868

Re: dollar format: not define the w?

Hi:
If you just used the format (for the AMOUNT variable) like this:
[pre]
format amount dollar.;
[/pre]

You'd probably see this note in the SAS log:
[pre]
NOTE: At least one W.D format was too small for the number to be printed. The decimal may be shifted by the "BEST"
format.
[/pre]

This might result in something like 'E' notation or scientific notation (1.23E8) being used. However, there's no problem in just specifying a large width. Only the LISTING destination uses the WIDTH for the output. ODS destinations just use the widest column for output reports. Consider the program below.

cynthia
[pre]
data numbers;
infile datalines;
input name $ amount;
return;
datalines;
alan 1.00
barb 123456789.22
carl 2345.33
dana 345.44
;
run;

ods listing close;
ods html file='c:\temp\usebigdollar.html' style=sasweb;
proc print data=numbers;
title 'Note that the table cell for amount does not use the "extra" width of the format';
sum amount;
var name amount;
format amount dollar24.;
run;
ods html close;
[/pre]
Frequent Contributor
Posts: 100

Re: dollar format: not define the w?

Posted in reply to Cynthia_sas
Thank you for the details, Cynthia. I also forgot that format has nothing to do with storage so it does not hurt to define a large one.
Ask a Question
Discussion stats
  • 2 replies
  • 118 views
  • 0 likes
  • 2 in conversation