Hi
I have a weird problem. I am operating on numbers which add up to around 800 000 000. I have a dataset which I need to split into minidatasets with 1000 000 records. The problem is that when I split my dataset, I loose decimal precision, for example:
Befote splitting the sum of my costs was 810268311.8536920
After splitting - 810268311.8401380
Splitted datasets have the total number of records equal to number of records which was in the initial table.
What can I do about that?
Thank you in advance!
Your numbers never had the accuracy. The 8 byte floating point numeric format used by SAS can only hold up to fifteen significant digits accurately. Your numbers have sixteen digits; you will lose precision on the sixteenth and above digits.
Tom
Hmm so what is there to do about that? Can I at least keep the number at 0.01 decimal precision? 810268311.85 - so that I could get this exact number after splitting, I do not need anything more precise. I"ve tried adding round(cost,0.01) to my data step which splits the data but that didn't help.
There is an exhausting treatise on this topic here:
The behavior of SAS is the same as any software that relies on floating point math, defined by an IEEE standard.
There is a newer DECIMALCONV= option that might help. From the doc:
specifies to convert and format decimal values by using the IEEE Standard for Floating-Point Arithmetic 754-2008. Using the STDIEEE argument improves the accuracy and readability of floating-point numbers. In some cases, more significant digits can be displayed in the same field width.
DECIMALCONV= was added in SAS 9.4.
To the extent you can work with integers instead of decimal fractions, the results will improve. If it would be practical, try:
Those totals should be closer.
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.
What’s the difference between SAS Enterprise Guide and SAS Studio? How are they similar? Just ask SAS’ Danny Modlin.
Find more tutorials on the SAS Users YouTube channel.