def *(other)
      if Quantity===other
        a = [self.enclose_expr, other.enclose_expr]
        a.delete(nil)
        self.class.new( @value*other.value, a.join(' '), @unit*other.unit )
      else
        self.class.new( @value*other, @expr, @unit )
      end
    end
def *(other)
      if Quantity===other
        a = [self.enclose_expr, other.enclose_expr]
        a.delete(nil)
        self.class.new( @value*other.value, a.join(' '), @unit*other.unit )
      else
        self.class.new( @value*other, @expr, @unit )
      end
    end
Multiplication.
 If the +other+ param is *not* Phys::Quantity,
 +other+ is regarded as a dimensionless value.
 The values and units are multiplied respectively.
 @param  [Object] other
 @return [Phys::Quantity] a quantity
 @raise  [Phys::UnitError] if unit is not operable.