def want(unit=nil)
      case unit
      when Unit
        expr = unit.expr
      when Quantity
        expr = unit.expr
        unit = unit.unit
      when String,Symbol
        expr = unit
        unit = Unit.parse(expr)
      when Numeric
        unit = Unit.cast(unit)
      when NilClass
        unit = Unit.cast(1)
      else
        raise TypeError, "invalid argument: #{unit.inspect}"
      end
      val = unit.convert(self)
      self.class.new( val, expr, unit )
    end
def want(unit=nil)
      case unit
      when Unit
        expr = unit.expr
      when Quantity
        expr = unit.expr
        unit = unit.unit
      when String,Symbol
        expr = unit
        unit = Unit.parse(expr)
      when Numeric
        unit = Unit.cast(unit)
      when NilClass
        unit = Unit.cast(1)
      else
        raise TypeError, "invalid argument: #{unit.inspect}"
      end
      val = unit.convert(self)
      self.class.new( val, expr, unit )
    end
Conversion to a quantity in another unit.
 @param  [String,Symbol,Unit,Quantity] unit unit expression.
 @return [Phys::Quantity] quantity in the unit of +unit+.
 @raise  [Phys::UnitError] if unit conversion is failed.