turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

Find a Community

- Home
- /
- SAS Programming
- /
- General Programming
- /
- Numeric format rounds number instead of displaying...

Topic Options

- RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page

- Mark as New
- Bookmark
- Subscribe
- RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

05-20-2018 07:58 PM

I recently got annoyed comparing data that showed no difference even when displaying (supposedly) all possible digits .

Using long formats was not enough; I had to derive the difference AND use a long format to finally unhide the difference in value.

Consider:

```
data _null_;
X=input('409D593333333333',hex16.);
Y=input('409D593333333334',hex16.);
Z=X-Y;
putlog X 32.20 / Y 32.20 /@1 Z 32.20;
run;
```

1878.30000000000000000000 1878.30000000000000000000 -0.00000000000022737368

Am I mistaken thinking that this behaviour is unintended, and that X and Y should be shown with a different value when using a long format?

I know that the difference is the 17th digit, which is beyond numerical precision. That's not the point. We have a difference at the end of the number, we should see it when displaying the whole number.

Y is the badly rounded value by the way, but you wouldn't know it by looking at the 3 lines above. You need further computations.

- Mark as New
- Bookmark
- Subscribe
- RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Posted in reply to ChrisNZ

05-20-2018 09:43 PM

Just one piece of the pie here ... the 15-digits of precision limit that is often mentioned is for integers. Decimal fractions may be imprecise with less than 15 digits.