BookmarkSubscribeRSS Feed
angeliquec
Quartz | Level 8

Hi,

 

In the code below, the SAS base application in our office displays the values in 'displayed' column when a is divided by b, then multiplied to 100, even if we made the format best32. However, the calculator gives longer values. 

 

But when I tried doing the division in the "want" dataset in SAS Studio (SAS base on demand), the division works fine. 

 

Can the automatic rounding of SAS be fixed?

 

 

 

data have;
input a b displayed;
cards;
16854.17 197890.028 8.5169375
819368.85 369280 221.8828125
150914.35 255027.6243 59.1756875
226253.24 858790.6977 26.3455625
100876.91 363464.5669 27.7542625
14788.51 777104.3771 1.9030275
;
run;

data want;
set have;
d = (a/b)*100;
run;

 

 

7 REPLIES 7
Reeza
Super User

Can you post the numbers you want to see?

What version of SAS are you working on?

 

Most likely it's related to numerical precision:

http://support.sas.com/documentation/cdl/en/lrcon/68089/HTML/default/viewer.htm#p0ji1unv6thm0dn1gp4t...

angeliquec
Quartz | Level 8
Hi Reeza,

We're using 9.4. The numbers I want are those under column d in the want dataset, which have more precision
PGStats
Opal | Level 21

Try

 


proc print data=want;
format d 20.10;
run;
PG
angeliquec
Quartz | Level 8
Hi Reeza

Apologies, we are using SAS 9.0.
Is there a way to address this precision issue?
Reeza
Super User

I doubt you're using 9.0...that would be akin to using Windows XP version 1, not even SP4.

 

What do you get from:

%put &sysver;

 

 

angeliquec
Quartz | Level 8
sorry, 9.4.

For the first row in the have data, SAS gives a quotient of 8.516937500000 when the actual answer is 8.5163749995668. SAS seems to do truncation there.
andreas_lds
Jade | Level 19

Interesting, win7 calculator returns 8.5169374982351308778429199070102 for the first row.

 

With format 20.10 applyed to variable d, SAS returns 8.5169374982 - SAS on Windows and Linux uses up to 15 digits. I don't think that value can be increased by altering a config file or by setting a sas system option.

sas-innovate-2024.png

Don't miss out on SAS Innovate - Register now for the FREE Livestream!

Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.

 

Register now!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 7 replies
  • 1953 views
  • 1 like
  • 4 in conversation