return new DoubleValue(Double.NaN); case Type.DECIMAL: return new DecimalValue(monthsValueSigned().doubleValue());
case Type.UNTYPED_ATOMIC : return new UntypedAtomicValue(getStringValue());
	public AtomicValue convertTo(int requiredType) throws XPathException {		switch (requiredType) {			case Type.ITEM :			case Type.ATOMIC :			case Type.YEAR_MONTH_DURATION :				return this;			case Type.STRING :				return new StringValue(getStringValue());			case Type.DURATION :				return new DurationValue(TimeUtils.getInstance().newDuration(						duration.getSign() >= 0,						(BigInteger) duration.getField(DatatypeConstants.YEARS),						(BigInteger) duration.getField(DatatypeConstants.MONTHS),						null, null, null, null				));			case Type.DOUBLE:				//return new DoubleValue(monthsValueSigned().doubleValue());				return new DoubleValue(Double.NaN);			case Type.DECIMAL:				return new DecimalValue(monthsValueSigned().doubleValue());							default :				throw new XPathException(					"Type error: cannot cast xs:yearMonthDuration to "						+ Type.getTypeName(requiredType));		}	}