Turn on suggestions

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

Showing results for

- Home
- /
- Programming
- /
- Programming
- /
- Re: SAS Function to check whether the field value is decimal or numeri...

Options

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

🔒 This topic is **solved** and **locked**.
Need further help from the community? Please
sign in and ask a **new** question.

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

Posted 08-18-2015 10:08 AM
(16889 views)

Hi,

Is there a SAS fucntion to check whether the field value is numeric or decimal. Please anyone can advise?

Regards,

Siva

1 ACCEPTED SOLUTION

Accepted Solutions

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

8 REPLIES 8

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

Can you explain more and give an example? Do you mean integer values versus having a decimal part?

If so, you can test whether int(x)=x.

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

Hi Rick,

For e.g If I have the values for the column in the dataset as follows.

TOTAL_SUM

156

134.67

147

190.00

I need to find if the value of TOTAL_SUM is decimal then I have to do some manipulation based on that?

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

Hi Reeza,

For e.g If have a decimal point(.) in the value then I would like to multiply only those value with 100.

Regards,

Siva

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

if int(TOTAL_SUM) ^= TOTAL_SUM then

TOTAL_SUM = TOTAL_SUM*100;

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

Hi Reeza,

For e.g the following decimal values have to be multiplied by 100.

134.67 -> 134.67 *100 -> 13467

Regards,

Siva

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

Thanks Rick

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

Irrespective of the number of decimal places,if you want to multiply the number with 100 then you can use the following code.

data Want;

input Total_Sum;

if scan(Total_Sum,2,'.') ne " " then Total_Sum=Total_Sum*100;

cards;

156

134.67

147

190.00

;

If there is condition on which the number should be multiplied basing on the number of decimal places(i.e multiply with 100 if the value has two decimal places and 10 for 1 decimal place ....) then you can use the following code

data Want;

input Total_Sum;

if lengthn(scan(Total_Sum,2,'.')) ge 2 then Total_Sum=Total_Sum*100;

if lengthn(scan(Total_Sum,2,'.')) eq 1 then Total_Sum=Total_Sum*10;

cards;

156

156.1

134.67

147

190.00

;

Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. **Registration is now open through August 30th**. Visit the SAS Hackathon homepage.

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.