For all arithmetic operations (not including those in expressions) if factor
1, factor 2, and the result field are defined with unsigned format, then the
operation is performed using unsigned format. Similarly, if factor 1, factor
2, and the result field are defined as either integer or unsigned format,
then the operation is performed using integer format. If any field does not
have either integer or unsigned format, then the operation is performed using
the default format, packed-decimal.
The following points apply to integer and unsigned arithmetic operations
only:
All integer and unsigned operations are performed in 8-byte
form.
Integer and unsigned values may be used together in one operation.
However, if either factor 1, factor 2, or the result field is integer, then
all unsigned values are converted to integer. If necessary, a 1-byte, 2-byte,
or 4-byte unsigned value is converted to a larger-sized integer value to lessen
the chance of numeric overflow.
If a literal has 20 digits or less with zero decimal positions,
and falls within the range allowed for integer and unsigned fields, then it
is loaded in integer or unsigned format, depending on whether it is a negative
or positive value respectively.
Note:
Integer or unsigned arithmetic may give better performance. However, the chances of numeric overflow may be greater when using
integer or unsigned numeric format, than when using packed or zoned decimal
format.