×
The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.
Dave,
On 12/9/2013 12:44 PM, Dave Shaw wrote:
So would this be preferable?
num4 = %dec(%subst(%char(num6):1:4):4:0);
This code is wrong. %char() will remove leading zeros, and trim the
resulting blanks. So if the input was '000111' the MOVEL example
results in '0001', but your %CHAR() technique would result in '111 '
If you want to use %dec() and %subst() you'll need to also use %EDITC to
preserve the leading zeros.
num4 = %dec(%subst(%editc(num6:'X'):1:4):4:0);
Personally, my vote would be %div(num6:100) which is every bit as valid
and self-documenting as MOVEL. With both MOVEL and %DIV you have to be
familiar with how the feature (meaning the MOVEL opcode or the %DIV
BIF) works. If you're not familiar with MOVEL, then it won't be
self-explanatory. Likewise, if you're not familiar with %DIV, it won't
be self explanatory, either. The difference here is that RPGers tend
to be more familiar with old obsolete things than they are with things
released in the past 15 years... but I refuse to use THAT as a reason
not to use new things.
Using %DIV is NOT 'magic' like the old "use mult to flip dates"
technique, as %DIV is documented to always return an integer, so there's
no question that it'll always strip the decimal places.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact
[javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.