<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Removing leading zeros from a decimal that is a text field in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Removing-leading-zeros-from-a-decimal-that-is-a-text-field/m-p/971539#M377358</link>
    <description>&lt;P&gt;Very impressive trick from&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/159"&gt;@Tom&lt;/a&gt;&amp;nbsp; to keep the same length from raw variable.&lt;/P&gt;
&lt;P&gt;As the question itself, in your specific example, replace "0." with "." will be OK, so you can use a tranwrd() function to solve this.&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;* Force NEWTEXT to have same length as TEXTFIELD ;
  newtext = textfield;
* Repalce "0." with ".";
  newtext = tranwrd(newtext,"0.",".");&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 28 Jul 2025 05:23:41 GMT</pubDate>
    <dc:creator>whymath</dc:creator>
    <dc:date>2025-07-28T05:23:41Z</dc:date>
    <item>
      <title>Removing leading zeros from a decimal that is a text field</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Removing-leading-zeros-from-a-decimal-that-is-a-text-field/m-p/971487#M377347</link>
      <description>&lt;P&gt;I need to covert data to remove the leading zeros from a text field that has decimals.&amp;nbsp; Here is what I have:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="andale mono,times"&gt;data Have;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="andale mono,times"&gt;infile datalines;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;format textfield $8000.;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;input textfield&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;datalines;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;-3.51400&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;-0.00001&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;3.05000&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;0.09000&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;NA&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;-3.33100&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;-0.02900&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;-0.29000&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="andale mono,times"&gt;;run;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="andale mono,times"&gt;data notwhatiwant;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;set have;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;get = put(input(textfield,8.5),7.5);&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="andale mono,times"&gt;run;&lt;/FONT&gt;&lt;/P&gt;
&lt;TABLE width="211"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="74"&gt;textfield&lt;/TD&gt;
&lt;TD width="73"&gt;get&lt;/TD&gt;
&lt;TD width="64"&gt;need&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;-3.51400&lt;/TD&gt;
&lt;TD&gt;-3.5140&lt;/TD&gt;
&lt;TD&gt;-3.51400&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;-0.00001&lt;/TD&gt;
&lt;TD&gt;-.00001&lt;/TD&gt;
&lt;TD&gt;-.00001&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3.05000&lt;/TD&gt;
&lt;TD&gt;3.05000&lt;/TD&gt;
&lt;TD&gt;3.05000&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;0.09000&lt;/TD&gt;
&lt;TD&gt;0.09000&lt;/TD&gt;
&lt;TD&gt;.09000&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;NA&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;.&lt;/TD&gt;
&lt;TD&gt;NA&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;-3.33100&lt;/TD&gt;
&lt;TD&gt;-3.3310&lt;/TD&gt;
&lt;TD&gt;-3.33100&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;-0.02900&lt;/TD&gt;
&lt;TD&gt;-.02900&lt;/TD&gt;
&lt;TD&gt;-.029000&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;-0.29000&lt;/TD&gt;
&lt;TD&gt;-.29000&lt;/TD&gt;
&lt;TD&gt;-.29000&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="andale mono,times"&gt;I seem to be struggling with that 5th decimal place that I need when there is the negative and non-zero before the decimal.&amp;nbsp; And those that are positive with a leading zero. Seems like this should be easy, but boy am i struggling. Any assistance is appreciated.&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="andale mono,times"&gt;Thanks.&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 25 Jul 2025 19:27:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Removing-leading-zeros-from-a-decimal-that-is-a-text-field/m-p/971487#M377347</guid>
      <dc:creator>Lost_Gary</dc:creator>
      <dc:date>2025-07-25T19:27:44Z</dc:date>
    </item>
    <item>
      <title>Re: Removing leading zeros from a decimal that is a text field</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Removing-leading-zeros-from-a-decimal-that-is-a-text-field/m-p/971488#M377348</link>
      <description>&lt;P&gt;Sorry - just 5 decimal places - one of my examples had too many.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="211"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="74"&gt;textfield&lt;/TD&gt;
&lt;TD width="73"&gt;get&lt;/TD&gt;
&lt;TD width="64"&gt;need&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;-3.51400&lt;/TD&gt;
&lt;TD&gt;-3.5140&lt;/TD&gt;
&lt;TD&gt;-3.51400&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;-0.00001&lt;/TD&gt;
&lt;TD&gt;-.00001&lt;/TD&gt;
&lt;TD&gt;-.00001&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3.05000&lt;/TD&gt;
&lt;TD&gt;3.05000&lt;/TD&gt;
&lt;TD&gt;3.05000&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;0.09000&lt;/TD&gt;
&lt;TD&gt;0.09000&lt;/TD&gt;
&lt;TD&gt;.09000&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;NA&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;.&lt;/TD&gt;
&lt;TD&gt;NA&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;-3.33100&lt;/TD&gt;
&lt;TD&gt;-3.3310&lt;/TD&gt;
&lt;TD&gt;-3.33100&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;-0.02900&lt;/TD&gt;
&lt;TD&gt;-.02900&lt;/TD&gt;
&lt;TD&gt;-.02900&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;-0.29000&lt;/TD&gt;
&lt;TD&gt;-.29000&lt;/TD&gt;
&lt;TD&gt;-.29000&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;</description>
      <pubDate>Fri, 25 Jul 2025 19:34:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Removing-leading-zeros-from-a-decimal-that-is-a-text-field/m-p/971488#M377348</guid>
      <dc:creator>Lost_Gary</dc:creator>
      <dc:date>2025-07-25T19:34:37Z</dc:date>
    </item>
    <item>
      <title>Re: Removing leading zeros from a decimal that is a text field</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Removing-leading-zeros-from-a-decimal-that-is-a-text-field/m-p/971490#M377349</link>
      <description>&lt;P&gt;If you want to convert text to text why not use text functions? Such as PRXCHANGE().&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  input textfield $char40.;
datalines;
-3.51400
-0.00001
3.05000
0.09000
NA
-3.33100
-0.02900
-0.29000

;

data want;
  set have;
* Force NEWTEXT to have same length as TEXTFIELD ;
  newtext = textfield;
* Remove any zeros between optional - and . ;
  newtext = prxchange('s/(-{0,1})0*([\d\.]*)/$1$2/',-1,newtext);
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Results&lt;/P&gt;
&lt;PRE&gt;Obs    textfield    newtext

 1     -3.51400     -3.51400
 2     -0.00001     -.00001
 3     3.05000      3.05000
 4     0.09000      .09000
 5     NA           NA
 6     -3.33100     -3.33100
 7     -0.02900     -.02900
 8     -0.29000     -.29000
 9


&lt;/PRE&gt;</description>
      <pubDate>Fri, 25 Jul 2025 19:52:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Removing-leading-zeros-from-a-decimal-that-is-a-text-field/m-p/971490#M377349</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2025-07-25T19:52:30Z</dc:date>
    </item>
    <item>
      <title>Re: Removing leading zeros from a decimal that is a text field</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Removing-leading-zeros-from-a-decimal-that-is-a-text-field/m-p/971500#M377350</link>
      <description>Brilliantly Simple - Thank you.</description>
      <pubDate>Fri, 25 Jul 2025 20:19:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Removing-leading-zeros-from-a-decimal-that-is-a-text-field/m-p/971500#M377350</guid>
      <dc:creator>Lost_Gary</dc:creator>
      <dc:date>2025-07-25T20:19:02Z</dc:date>
    </item>
    <item>
      <title>Re: Removing leading zeros from a decimal that is a text field</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Removing-leading-zeros-from-a-decimal-that-is-a-text-field/m-p/971511#M377353</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  input textfield $char40.;
datalines;
-3.51400
-0.00001
3.05000
0.09000
NA
-3.33100
-0.02900
-0.29000
;

data want;
  set have;
  newtext = prxchange('s/^[\-0]+//',1,textfield);
  if first(textfield)='-' then newtext=cats('-',newtext);
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sat, 26 Jul 2025 05:30:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Removing-leading-zeros-from-a-decimal-that-is-a-text-field/m-p/971511#M377353</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2025-07-26T05:30:53Z</dc:date>
    </item>
    <item>
      <title>Re: Removing leading zeros from a decimal that is a text field</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Removing-leading-zeros-from-a-decimal-that-is-a-text-field/m-p/971539#M377358</link>
      <description>&lt;P&gt;Very impressive trick from&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/159"&gt;@Tom&lt;/a&gt;&amp;nbsp; to keep the same length from raw variable.&lt;/P&gt;
&lt;P&gt;As the question itself, in your specific example, replace "0." with "." will be OK, so you can use a tranwrd() function to solve this.&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;* Force NEWTEXT to have same length as TEXTFIELD ;
  newtext = textfield;
* Repalce "0." with ".";
  newtext = tranwrd(newtext,"0.",".");&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 28 Jul 2025 05:23:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Removing-leading-zeros-from-a-decimal-that-is-a-text-field/m-p/971539#M377358</guid>
      <dc:creator>whymath</dc:creator>
      <dc:date>2025-07-28T05:23:41Z</dc:date>
    </item>
  </channel>
</rss>

