BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
mansour_ibrahim
Obsidian | Level 7

Hello,

I want to get a 0.00 from this value -1.42109E-14.

With best32. I have -0.00

Thank you

Cordially

1 ACCEPTED SOLUTION

Accepted Solutions
WarrenKuhfeld
Ammonite | Level 13

This would be one way to display values near zero as zero.  No doubt others will chime in with other ways.

 

proc format;
   value myfmt -1e-12 - 1e-12 = '                            0.00';
run;

data x;
   do i = -1 to 1 by 0.1;
      j = i;
      output;
   end;
   format i best32. j myfmt32.;
 run;
   
proc print; run;

View solution in original post

2 REPLIES 2
ChrisHemedinger
Community Manager

This is a nuance of floating point representation.  See What's the difference between 0 and -0?

 

You might consider using the ROUND function, or multiplying the value by 1.0 might do the trick.

Become an Explorer! Join SAS Analytics Explorers to learn and complete challenges that earn rewards!
WarrenKuhfeld
Ammonite | Level 13

This would be one way to display values near zero as zero.  No doubt others will chime in with other ways.

 

proc format;
   value myfmt -1e-12 - 1e-12 = '                            0.00';
run;

data x;
   do i = -1 to 1 by 0.1;
      j = i;
      output;
   end;
   format i best32. j myfmt32.;
 run;
   
proc print; run;

Catch up on SAS Innovate 2026

Nearly 200 sessions are now available on demand with the SAS Innovate Digital Pass.

Explore 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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 2640 views
  • 4 likes
  • 3 in conversation