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



Kurt Anderson wrote:

D NumWrong 3u 0
D Count1       3u 0    Dim( 5 )
D Count2       3u 0    Dim( 5 )

// NumWrong = 0
// Count1(i) = 8
// Count2(i) = 29

NumWrong += %uns( %abs( Count1(i) - Count2(i) ) );
// or
NumWrong += %abs( Count1(i) - Count2(i) );

Receiver value too small to hold result.


The intermediate result of subtraction between unsigned values is an
unsigned value. 
http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/books_web/c0925086550.htm#Header_712

"For the operators +, -, and *:
  - If at least one operand has a float format, the result is float
format. 
  - Otherwise, if at least one operand has packed-decimal,
zoned-decimal, or 
    binary format, the result has packed-decimal format. 
  - Otherwise, if at least one operand has integer format, the result
has integer format. 
  - Otherwise, the result has unsigned format."

Try this
   NumWrong += %abs( Count1(i) - %int(Count2(i)));


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

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.