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.
  • For numeric literals that are not in float format:
    • If the literal is within the range of an unsigned integer, the literal is assumed to be an unsigned integer.
    • Otherwise, if the literal is within the range of an integer, the literal is assumed to be an integer.
    • Otherwise, the literal is assumed to be packed decimal.