long value1 = decp1.getDecimalValue();
long value2 = decp2.getDecimalValue();
byte place1 = decp1.getDecimalPlace();
byte place2 = decp2.getDecimalPlace();
if (value2 != 0 && Math.abs(value1) > Long.MAX_VALUE / Math.abs(value2)) {
throw new SystemException(ErrorCode.XPDY0002);
}
value1 *= value2;
place1 += place2;
dOut.write(ValueTag.XS_DECIMAL_TAG);
dOut.writeByte(place1);