code: protected static int getCompatibleType(Number left, Number right) {
          return Math.max(getNumberType(left), getNumberType(right));
      }
docs: Get the type most compatible between the two values that would be the
  most safe to compare against.  This is generally the highest degree of
  the number type. For example, a {@link #TYPE_INT} compared to a
  {@link #TYPE_LONG} would compare against the long data type to avoid
  losing data from a long to an int.
  
  @param left  The left side value to compare
  @param right The right side value to compare
  
  @return {@link #TYPE_DOUBLE}, {@link #TYPE_FLOAT}, {@link #TYPE_LONG},
  or {@link #TYPE_INT} based on the compatible data type
  
  @see #getNumberType(Number)