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;
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:
Try
proc print data=want;
format d 20.10;
run;
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;
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.
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.
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.