op2 = op2.multiply (BigInteger.valueOf (10).pow (scale - val.scale));
op2 = op2.multiply (BigInteger.TEN.pow (scale - val.scale));
  public BigDecimal add (BigDecimal val)   {    // For addition, need to line up decimals.  Note that the movePointRight    // method cannot be used for this as it might return a BigDecimal with    // scale == 0 instead of the scale we need.    BigInteger op1 = intVal;    BigInteger op2 = val.intVal;    if (scale < val.scale)      op1 = op1.multiply (BigInteger.valueOf (10).pow (val.scale - scale));    else if (scale > val.scale)      op2 = op2.multiply (BigInteger.valueOf (10).pow (scale - val.scale));    return new BigDecimal (op1.add (op2), Math.max (scale, val.scale));  }